Contains() prende tutti gli elementi del vettore ad uno ad uno e confronta i due elementi con il metodo equals(). Essendo una classe scritta da te, il metodo equals() e' quello ereditato dalla classe Object, che restituisce true se e solo se si confrontano due variabili che puntano alla stessa istanza dell'oggetto. Se sono due istanze diverse (come e' il tuo caso), resituisce false anche se le due istanze hanno le variabili settate con gli stessi valori.
Se vuoi che si comporti nel modo in cui cercavi di usarlo tu, devi sovrascrivere il metodo equals().