Il metodo UNLOAD viene eseguito solo nel momento in cui c'è un'azione di scaricamento di un file caricato in precedenza. Ma chiaramente, se il file non viene scaricato, come nel caso che ti ho presentato, l'evento non verrà mai richiamato. Perciò se vuoi che venga richiamato, l'unica è scaricare il file precedente, prima di caricare il nuovo.
Nel tuo codice non ho capito perchè prima rimuovi e poi reinserisci il file, ha senso? Cioè perchè fare due azioni in cui una è la negazione dell'altra?