A person who criticizes his own homeland/city/country?
You could call people like that "turncoats" or "renegades." You could describe them as "dissident."
No single verb I know quite captures what you've described, but try "abandon," "desert," "betray," "defect," or "dissent."
Words that fit into the blanks in your sentences are "resents," "scorns," "rejects," and "disdains."
When someone is different from their origins, especially when a child is different from his or her parents, people say, "The apple has fallen far from the tree." There are lots of variations on the phrase "too good for," and in this context someone might contemptuously say, "They think they're too good for us now." When people mock others for qualities they themselves exhibit, like the partier who looks down on other partiers for partying, you might say, "Look at the pot calling the kettle black."
Words for this are often strongly loaded; traitor / treason / betray is probably the commonest term in English, and also refers to a serious (often capital) crime. Sedition is the crime of speaking, rather than acting, against one's country, but this is normally only used to refer to the actual crime.
Somewhat more neutrally, you can say that someone renounces, disavows, repudiates or resiles from a national allegiance-- they once held (or were presumed to hold) such loyalty, but now deny it. Such a person may be called an apostate, or described as apostate (they commit apostasy); this has quite a formal tone. Colloquially, they turn their back on their country, forget their roots or put on airs.
From another viewpoint, national or regional loyalty is artificial, and its absence is a person's default state. From this viewpoint you might call someone with no such loyalty disinterested, impartial, or cosmopolitan, but this does not seem to be the sense the question is looking for.
Since national identity is inherently political, there are many examples of specialised epithets from particular times and places-- "pinko", "counter-revolutionary", "un-American", "fifth columnist", "bourgeois" etc.
The blank in your examples can be filled with a range of words from "criticized" to "betrayed" - all with a certain degree of severity of the person's actions.
What I think might fit best here since we don't know of a motivation other than peevishness or disillusionment is "bad mouth" - which has a connotation of some degree of betrayal or of being a hypocrite.
"He had lived in this city all his life but whenever he gets a chance he starts counting the flaws. He thanklessly bad mouths his homeland"
From the Google dictionary:
"Bad mouth" "verb"
criticize (someone or something); speak disloyally of.
example: "no one wants to hire an individual who bad-mouths a prior employer"