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();
Codice PHP:
function errore(...)
{

//controllo email...
//se errato:
return $errore['email'] = false;  //cosi' per ogni caso.

Alla fine avrai un array con tutte le chiavi e corrispondeze del campo