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).