the Equals method fails if you have a binary field on your table. It checks equality but because Byte arrays are reference types, the equality on them won't work if the objects were generated separately (it works on the clone because they end up being set to the same array (which may be another bug as changes to one byte array would affect the other object....)
Included is a patch that alters the EntityInstanceBase.generated.cst to check for the field being of type Byte[] and then doing an array VALUE comparison.