Organization diagram save layout changes

I am using the TreeLayout for an organizational diagram. Is it possible for an user to drag a node(along with all its children), save its relative position (layout) to other nodes with the same parent, and the saved layout is shown when user navigate away and then back to this page?

Yes.

To get the behavior that dragging-a-node-also-drags-along-all-of-its-tree-children, set:
<go:Diagram … >
go:Diagram.DraggingTool
<go:DraggingTool Inclusions=“SubTree” />
</go:Diagram.DraggingTool>
</go:Diagram>

Regarding the saving of node positions, you can establish a TwoWay Binding of go:Node.Location to a property in your model data, and save that data in your database or file or whatever. There are lots of examples of binding go:Node.Location throughout the samples. Many samples also demonstrate saving/loading of model data using XML.

This is the physical location of the node. Is there a property of the TreeNode or TreeLayout that keeps track of the layout order of its children, i.e. first child, second… so it renders children nodes by this property?

Yes, you can set the TreeLayout.Sorting and Comparer properties.