I am no professional, but maybe you can serialize a class with a save pattern for each entity (In this case buildings and streets as simplest) and then you could save the object into binarys... ( using System.Runtime.Serialization.Formatters.Binary; )
like: [Serializable]
class SaveEntitys{Entity[] ListOfEntitys [...]} [Serializable]
class Entity{public Entity(obj object, Vector2 position, obj content)}
Sounded like you haven't thought about it that much, maybe this is a way to go? :3 Maybe you have even already other structures, which leads into the problem, that this "path" of saving won't work... ^-^