Gli ho dato uno sguardo rapido, ma ho notato questo:

codice:
    public void removeVoceArchivio(VoceArchivio v){
        Iterator<VoceArchivio> it = archivio.iterator();
        while(it.hasNext()){
         VoceArchivio a = it.next();
           if(a.equals(v))
           it.remove();
       }
    }
richiama in questo modo remove:

codice:
archivio.remove(a);
Se non funziona posta anche la classe VoceArchivio (che se non erro non l'hai postata).