I suppose you could wrap your validation errors with the same if statement:
If Request.QueryString("fail") = "yes" Then
your error code here
to solve the problem with the error messages.
Actually, I found the proper solution to this in another thread.
You need to put this after the closing html tag on your page:
of course WAVT_usersInsert_405_Errors needs to be changed to the name of your validation session variable.
This is something that the validation toolkit should be adding on its own, but is not.