Можно просто вставлять текстовые тэги
Lorem ipsum dolor sit amet, consectetur ${name} adipisicing elit, sed do eiusmod tempor ${year} ...
Затем парсить текст, запоминать позицию тэгов и удалять их.
Т. е. на выходе получим
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor ...
и некий список тэгов, который хранится отдельно от QTextDocument (ну или в QTextBlockUserData).