The problem is not because of PostBack not maintaining the viewstate... ASP.Net should do that just fine, assuming you don't databind again.
The problem is that you are setting "SelectedNodeStyle" rather than the style of the currently selected node. In fact, you cannot set the style for particular nodes (the ASP.Net TreeView only has styles for particular groups of nodes, such as the selected node and the parent node).
You will have to render a custom TreeNode.
This page has a pretty good example of how to do some custom tree node rendering. Also, I'm not too familiar with maintaining view state, but you may want to look into how to do that so you don't have to set each previously selected node's style on each postback.