Es wird also MergeText nach dem Einfügen des Textes aufgerufen und dabei gehen die Attribute verloren, nicht wegen SaveToString!
Achten Sie bitte darauf, dass die Einfügepunkte << >> das text Attribut besitzen, welches auch der enthaltene Text haben soll.
Das ist immer wichtig, ob die Felder im header, footer, text box oder im body sind.
Der Text innerhalb von << >> ist nicht das Feld, sondern der Feldinhalt. Dieser Text ist optional und kann ersetzt werden, er kann auch fehlen.
Man kann die Attribute des Textes aber so auslesen (--> Mail Merge):
Contents.MergeAttr.CharAttr := WPRichText1.CPCharAttr;