Most likely the trigger for setting the discount session on the confirm page is set to Any Form Post.
When the checkout page is submitted, it posts to the confirm page.
When the confirm page is submitted, it reposts to itself. If you look at the confirm page code, there is a collection of hidden form elements used to collect the data sent by the checkout form and resend when the order is submitted.
When you add a form element to the checkout page, you also need to add a corresponding hidden element of the same name and set it to use the session variable value so when the form submits again, it can retain the original value.