I think that depends on how you use 'have', for purposes of this app and learning languages, it may be best to use the most literal meaning. Having breakfast can mean in English that you are eating breakfast, but it can also mean that you possess breakfast. Possess is the more literal definition. In translating verbs we can't can't assume that both meanings of 'i have' will be included within 'mam'. So it is best to only try to relate 'mam' with possession and 'jem' with eating.
Yes rano can be either adverb or a noun. But a noun As far I know is only used in rano/rana/ranem forms. I have never seen/heard po ranu, I had to think really hard to undersatnd you mean after morning , ranek or poranek is more often used. Po poranku would be better here as po ranku and poranku look and sound almost the same.
If there's a rule, then I guess almost everyone uses it unconsciously.
I'd rather say that the rule is 'new/most important information at the end'.
"Rano jem śniadanie" is a sentence about 'what I do in the morning' or 'what I eat in the morning'.
"Jem śniadanie rano" is a sentence about 'when I do eat breakfast'.