I have noticed today that, when you have PopulateOnDemand, and PopulateNodesFromClient both are true, then there is no way to access the Parent Node of the Current Node in your code!
I have been building a very complicated TreeView System in one of the projects working on, and I have really very complicated requirements for that Tree.
A workaround I came up with, whenever I see that the ParentNode is to be used by the children node, I add the Current Node Text and Value as the Value of the Children Node.
The key point, to let you know about this fact, and to help you find workarounds when you face such a need!
Hope this helps,