Credevo che il passaggio dei parametri alla funzione ByVal , creasse una copia dell'oggetto, e fosse ByRef che passasse il riferimentoOriginariamente inviato da MItaly
Perché MioOggetto di fatto è un puntatore al tuo oggetto, e sia MioOggetto che il riferimento contenuto nella collezione puntano al medesimo oggetto. Se vuoi avere due oggetti indipendenti devi creare una copia, implementando l'interfaccia ICloneable.