Gracias yusnerqui, este mismo artículo encontre el fin de semana en su versión en ingles:
http://delphi.about.com/library/bluc/text/uc090302a.htm
lo probé y funciona muy bien y cómodo, pero no me termina de convencer. El gran problema que le veo es que al guardar toda la estructura como un objeto, se producen errores al eliminar una propiedad.
Esto es posible si uno hace modificaciones entre versiones y genera un error sin levantar el resto de las propiedades que si estan guardadas
Encontre y modifique un código para guardar en XML, la verdad es que me gusto bastante, porque tambien queda más visible, por si el usuario quiere modificar una opción directamente desde ahi (aunque a muchos no le gusta dejar esta opción abierta).
Pero todavia tiene el inconveniete que hay que saber el tipo de dato que se esta guardando. Estoy buscando la forma de hacerlo bien transparante para el usuario.
Cualquier sugerencia sigue siendo bienvenida.