After another few hours spent searching the forums I found this thread
where you explain what you mean by applying the server behaviours to the form processing page - hallelujah! As that client said, why on earth is this not in the Getting Started Guide when it is such common practice to use a form processor?!?!
So I have, maybe, progressed a bit - to a different error at least.
My page now returns an error page (you have entered the code incorrectly) whether it's entered correctly or not. As for the validation show if, it doesn't work at all - the user is just sent to the error page.
I pared down the form to make it easier to test:
and have attached it to this post. The server validation code used ($WAFV_Errors etc) is that produced when I follow the Getting Started Guide. But I tried replacing that line with your code - it still doesn't work.