se usi un field devi usare un field se usi una property devi usare una property, non puoi assegnare un valore al field ed aspettarti che passi l'assegnazione dalla property. Quindi:

codice:
    Private codauto As Long

    Public Property CodiceAuto() As Long
        Get
            Return Codauto
        End Get
        Set(ByVal value As Long)
            codauto = value
        End Set
    End Property
ed il valore lo assegni a CodiceAuto, e non a codauto, sarà la property che assegnerà il valore alla variabile interna alla classe.

Oppure utilizzi un field quindi:
Public codauto as long
senza una property dunque, anche se con la property è più comodo, ha la possibilità di verificare facilmente il dato quando lo ricevi e lo restituisci.

Una curiosità, usi long, ti serve proprio una variabile a 64 bit ?

Un long vb.net non è come un long vb6.