Well I've not done much with validation myself yet... so can't comment on that...
But the basic problem you're having comes from the Tab control. You're using the built in XPages Tab Control. What this does is it only send the contents of 1 tab at a time to the browser. So each type you change tabs causes a partial refresh / round trip to the server. this is why the validation is kicking in.
Use the Dojo Tab control. That will send everything to the browser and CSJS is used to show the correct tab. That should eliminate the validation from triggering on a tab change.