Are you loading the TreeView on the Page Loaded event? If yes, check for IsPostback before calling the load.
I see like you are loading the TreeView on the Page Loaded without any condition check. So, the TreeView is regenerated with items everytime it is loaded.
Your code supposed to be,
protected void Page_Loaded (object sender, EventArgs e)
{
if (!IsPostback)
{
}
}