Yes, it is impossible for a VB6 byte to be negative. The values can only be 0-255 as documented here in the manual.
The check b(UBound(b) - 2) >= 0
will always be True
and can be removed from the VB6 code. The check does not need to be migrated to C#.