I was working on something like this before i got roped in to something else (get paid for the new project so it took priority).
Essentially my plugin was called land. It would use chunk based sizes (you could have multiple chunks next to one another to create one huge size).
There were a number of land types. However one whole section of land types was dedicated to homes.
Essentially a player would by a predefinded plot. They could then use one of the predefinded building schematics in the plugin (use there own resources > put it in a chest and the plugin will put it in the right place) or build there own. They could then live in it themselves or sell it on and make them the land lord (where the new owners could only place new blocks and destroy there own, the landlord still had full control over the building).
There was also dynamic land types and houses could be a part of that. Essentially a player would by a dynamic land plot and treat it like it was a normal plot. But when they disconnect and reconnect. The plugin will rebuild and replace everything in another dynamic plot (it would take the original one as priority). The benifit to dynamic plots would be that multiple people could own a single plot meaning less time being forced to expand your server by placing your own plots. But it would mean that if two people who own the same dynamic plot, one of them would be moved to another plot.
I got around 15% of the way through. The backend was done, i had to add in the commands, interfaces and the predefinded stuff.
Let me know if you want me to carry it on when i get a chance (current project is a big one so it may take a while)