RE:Guardar texto en formato propio
Una forma sería definiendo una clase derivada de TConversion, implementando los métodos ConvertReadStream y ConvertWriteStream, donde conviertes de tu formato propio a formato RTF, y de RTF a tu formato propio respectivamente. Esa clase la asignas luego a la propiedad DefaultConverter del RichEdit.
Si quieres liarte con el RTF, no es precisamente lo mejor, especialmente por el rendimiento, pero otra forma de grabar sería ir desplazando la propiedad SelStart caracter por caracter para ir detectando cambios de párrafo y de formato, e ir guardando los caracteres insertando los códigos apropiados en tu formato propio según corresponda (o sea, debes ir buscando cambios en los valores de las propiedades de las propiedades SelAtributes y Paragraph al irte desplazando), y para leer, ir interpretando tus códigos especiales para ir modificando las propiedades de SelAtributes y Paragraph antes de agregar cada caracter.
Espero que al menos te sirva de guía.
Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php