Как правило, вы проверяете на нулевое значение и используете 0 для этой «части» хеш-кода, если поле пустое:
return (Name == null ? 0 : Name.GetHashCode()) ^
(Address == null ? 0 : Address.GetHashCode());
(простите за C # -изму, не уверен в нулевом проверочном эквиваленте в VB)