That seems like a good method. For populating the form elements.
I suppose you could wrap your validation errors with the same if statement:
<%
If Request.QueryString("fail") = "yes" Then
%>
your error code here
<%
end if
%>
to solve the problem with the error messages.