se ho ben capito nell'ultima prova la stessa immagine (con 3 nomi diversi) la prima volta carica e le successive no... in questo caso il problema potrebbe essere nel server: magari nei tempi di invio (troppo ravvicinati magari)? Un altro problema potrebbe essere legato ai file temporanei... fai anche questo controllo: prima dell'IF stampa il contenuto della variabile $_FILES per capire se è vuota o c'è qualcosa), cioè:
Codice PHP:
var_export($_FILES);