Part 1.
"посещать" -
- formal (sometimes ironical) for doctors (!!!), insitutions, courses, universities, libraries, theaters and so on. Instead of simple "ходить к". Also applied to school, but in this case Only used by school officials:)
In other cases it is quite common, even informally.
- for cities, but it is tourist guide - style.
- for places. Though (just slighly) reminds of 19 century poetry:)
- for bars, clubs, lectures etc.
- possible with friends, but would sound ironical in this context:)
In other words. This is a common word, but it has certain slight shades that make you slightly associate it with formality this time, "elevated" style of tourist advertisments and guides other time, poetry yet another time or to use it humorously.
"бывать" - a simpler word for cities.
"навещать" -
https://en.wiktionary.org/wiki/visit
2. (transitive) To habitually go to (someone in distress, sickness etc.) to comfort them. (Now generally merged into later senses, below.) [from 13th c.]
3. (transitive, intransitive) To go and meet (a person) as an act of friendliness or sociability. [from 14th c.]
"навещать" is PARTLY similar. It doesn't necessary mean 'habiutually'.
The primary association is "a person you care about" - or "a person you haven't seen for a while". You can apply it to objects too - and it implies certain personification. You can "навещать" someone ill. A friend may complain that it has been quite a while since you visited him/her.
So it can't be combined with "like". It is an act of care.
"ходить к/в" the most simple colloquial. Too simple may be for formal contexts.