Have you thought about using the .NET binary serialization instead? It works almost the same as the XML, but saves out the data as just a binary file which can potentially give you a decent savings. I'd give it a shot and see.
As for the XML issues, there is no way that I'm aware to have it not serialize out all the data if using the default. If you want that finely tuned you'll have to either create your own serializer or manually write out your XML data.