Probabilmente la funzione ti ritorna true o false e ovviamente richiamandola per ogni controllo sovrascrivi la variabile dell'errore tenendo l'ultima valida per tutti.
Potresti fare che a seconda del caso, la funzione ritorni un array con la chiave corrispondente al campo.
A priori $errore= array();
Alla fine avrai un array con tutte le chiavi e corrispondeze del campoCodice PHP:
function errore(...)
{
//controllo email...
//se errato:
return $errore['email'] = false; //cosi' per ogni caso.
}