Dovresti sistemare il tuo codice perchè è un po' un casino.

Sembrebbe che :

Se la mail al cliente non viene spedita non fa + nulla

Se la mail viene spedita viene composta quella automatica, ma se quella automatica parte ti dice che non è stata spedita.

Da quello che vedo in questo codice non c'è motivo percui questa mail venga spedita 2 volte, vedo che a fondo codice c'è un mysql_free_result, non è che richiami questo codice in un ciclo che magari cicla troppe volte?

Poi, caso molto particolare, a me con chrome un codice di test pulitissimo spediva 2 volte la stessa mail, poi mi sono accorto che avevo un plugin per validare il codice html che si connetteva alla mia pagina richiamando di fatto 2 volte lo script (prima di capirlo ci ho sbattuto la testa mica male).