come sospettavo ci sono errori di logica
il primo e' settare ad ogni chiamata un nuovo gestore evento per il form: ad ogni tentativo, comunque vada a termine, setti che si proceda al submit ad inviare via ajax

chiaramente la prima volta che passa la validazione lo fa, una volta di piu' per ogni tentativo precedente non andato a buon fine

se proprio vuoi mantenere questa logica (che non e' certamente la piu' immediata) fai un bind con namespace del submit del form e preoccupati di rimuoverlo prima di settarlo nuovamente
http://api.jquery.com/unbind/

eviterei comunque di far partire i controlli al click sull' elemento di tipo submit: ritorni false in caso non debba procedere ma non e' certo che ritornare falso al click blocchi l' invio,
mentre ritornare false al submit del form sicuramente lo fa
(oltre a coprirti da varie situazioni: submit da pressione di invio in campo testo, piu' di un tasto per il submit nel form, etc)

ciao