You could use the null-coalescing operator to treat a null-byte as 0
:
Public Overrides Function Equals(other As Object) As Boolean
' ... '
Dim otherType = TryCast(other, ActualType)
If otherType Is Nothing Then Return False
If If(Me.header, 0) <> If(otherType.header, 0) Then
Return False
End If
' ... '
End Function
Here is an approach which checks if both nullable-arrays are equal:
If header Is Nothing AndAlso otherType.header Is Nothing Then
Return True
ElseIf Object.ReferenceEquals(header, otherType.header) Then
Return True
ElseIf header Is Nothing OrElse otherType.header Is Nothing Then
Return False
Else
Return header.SequenceEqual(otherType.header)
End If