Sorry, me bad.

The problem turned out to be that I did not realize that the LCD print function trunkates leading zeros when it displays a BIN number. I had assumed that it printed all 8 digits, so I was not clearing the previously displayed value. So when it displayed a small number, it just overwrote the first few bits of the previous entry and left the remaining bits displayed. So the data read correctly. Operator error!