I'm thinking that the goal is having "plain" models that are not QObjects.
That's a quite normal thing to do. Let the Qt model be just an intermediary between actual data model/tree and the GUI.
If your implementation works, then it's OK I guess. I'm not sure if there any actual question to answer here :-)