You can't refresh the page and keep the form elements the same, at least not the way you're doing it.
There are multiple ways to do this;
1) Use javascript to hold all the possible information needed, and dynamically fill in the boxes that way. Since I think that you may be filling in the boxes from DB info that changes with onChange, this might not be your best bet.
2) have a hidden form at the bottom of your page, and store all hidden fields down there. When the user does an onchange, populate the hidden fields (using javascript), then trigger the form (document.myform.submit()

. make sure the form points to itself (ie action="form.asp"

, then, with the ASP code populate the form that way.
I hope this made sense to you... I'm not even sure if it made sense to me
If you need an example, I'll be more than happy to post one up.
hth
leo leo