Stop loading the textbox with the dates in your Page_load event except when
IsPostBack[
^] is false!
When your user presses a button, your application is started, and the Page Load event handler is called. If you do not check in the handler if this is a Postback, you load the values from the Session into the TextBox, and overwrite any values the user had entered. The Button Click event handler is then called, which reads the overwritten values from the text boxes.
So what it looks like is that the session values are not being deleted - they are, but just after you have used the values to overwrite the user input!