Спасибо за проявленый интрес, я сделал примерно следующее.
Создал некий объет MySerializer который может упаковывать некие типы данных имеющие интерфейс сериализации.
MyCommandDataAbstract - это интерфейс данных для команды, которую можно сериализовать в неком QIODevice.
+ MyCommandBase c методом SetMyCommandData - устанавливает данные для выполнения команды. Ну и пришлось использовать d MyUndoStack в качестве закрытой реализации QUndoStack. Посути MySerializer, некий упрощенный манагер размещения данных команд.
Просто сохранять/загружать постоянно данные команды не совсем эффективно, как мне кажется, вот для этого и сделал весь огород