So far, I can see you're rebinding the treeview every postback, so that the treeview state is cleared at Page_Load
Probably you should use
If Not IsPostBack Then
' bind treeview to data here
End If
So this will prevent your page from clearing treeview nodes and creating new one.