In European Portuguese based on my text book you can indeed say "ao" to mean lunch in general. (I believe here it is meant for a specific lunch not any lunch, and it's the English translation that lost the subtlety confusing some of us.) Not sure if this is true for BP. We need natives to confirm either cases. Thanks
"Nós" is the personal pronoun equivalent to "we". "Nos" is the oblique form, equivalent to "us", although there are a few exceptions, like the colloquial expression "us too" which is translated to "nós também". But oblique pronouns never appear as the subject of a sentence.
A sample sentence would be "Nós comemos peixe" (We ate fish) vs. "O peixe nos comeu" (The fish ate us).
You can also eat something at lunch and it is not necessarily the main part of that lunch. If I say I eat fish for lunch, then that was the main food that made up my lunch. If you ask when did you eat fish, I would say I ate fish at lunch. If you ask what did you eat at lunch, I might say "I had fish for lunch." if that were the main thing that I had, or if I was at a buffet and I ate fish, but also many other things, than I might say "I ate fish at lunch." then I would tell you the other things that I ate.