With the recent changes to the city, each city now has a residential area in which nothing changes to the residents even when a city changes hands.
Take note that this means that when a new guild takes over an established city, the new guild may not have enough residential spots to take, and will be forced to settle elsewhere ( unless they choose to reduce their already small city size by building new housing plots, which could involve removing existing city buildings already upgraded by the previous owners ).
What this means is that essentially a new guild would be owning a city where their previous owners have a base of operations much closer to the city than they do, which is pretty weird, and not optimal at all for a game where travel time matters.
So we have two problems here that we need to address :
i) Guilds that take over a city have no place in the city to stay
ii) We don't want to have a system that forces all residents to lose everything they have in their residential plot every time a city gets taken over, this will be a huge loss to players, and is not conducive at all.
This is where our proposal system comes in, to address both of these problems.
Basically whenever a city gets taken over, the new governor can choose selected residents to evict at a cost. The residents chosen have to move out, and when they are evicted out, they will get a "refugee" status.
The Eviction System :
Governors need to pay a cost for every resident they want to evict. The cost can be higher the more resources spent to build up the plot of land that the governor is evicting the resident from. This allows new guildies to move in - but at a cost, but due to the high cost, they will not choose to evict random neutral players that were not part of the conflict, they would most likely only choose to evict the enemy guild members that they took the city from.
Governor can then have an approval system on who gets to live in the evicted plots, that last for a certain amount of time, if nobody new comes to live in the plot, than anybody can live there, even the evicted person. ( Logically if you evict someone out of the plot, it would be for a guild member to take it, if your guild members or friends dont come and apply to live there, then anyone can live there, even the previously evicted person. )
This then solves both the problems where, the conquerors have no place to live in, and also random and casual players not part of the conflict will most likely not be evicted and can continue living in the residential area as usual.
This would of course increase the cost of sieging, but that's fine, there should always be a cost to sieging anyway.
The Refugee System :
Players who get evicted out of their plots get a "refugee" status. The refugee status means that they cannot be attacked or attack other players. This means no players can cast spells/skills/attack them, and they cannot cast skills/spells/attack anyone else.
If a player wants to remove their refugee status, they can either manually choose to do so, or wait for the refugee timer status to run out.
The refugee system is there to protect players who get evicted. We don't want to run into a situation where an evicted person gets paid their compensation, and grabs all their items to move, only to get ganked by the guild who paid them in the first place.
And there you have it folks, many thanks to @spoletta and @LonelyCookie for coming up with the solution together.
When a guild conquers a city, it can evict existing residents for a price, evicted residents have a "refugee immunity" status for a time period to be protected so that they can move their stuff.