I just came across a problem with MessageDisplayByBit that may be related. When using the highest bit number for eample bit 31 in a DINT, it will return a negative number. The MessageDisplayByValue does not know the bit width, so it converts everything to 64 bit. The side effect is that a negative number will produce a lot of errors and even and exception.