prima di copiare il file caricato nella sua posizione definitiva fai un controllo con file_exist() passandogli il percorso+nome del file che stai per copiare, se il file esiste già allora prima di copiare generi il nuovo nome del file aggiungendo md5(microtime());

Non ho guardato il codice postato perché troppo incasinato (molto codice ripetuto più volte), potresti certamente fare qualcosa di migliore...