Que tal.
Nunca he trabajado con XML, pero si he logrado hacer algunas cosillas para conseguir persistencia, aunque no lo he hecho "integralmente".
Si todas las clases heredan de un padre en particular, tuyo, podes basarte en la información RTTI para almacenar todas las propiedades publicadas (published) de los objetos.
Creo que te valdria de mucho revisar el código de la VCL, específicamente el SaveToStream y LoadFromStream de la clase TPersistent.
Hasta luego.