I'm using the same math and it works on a single device.
I've had that experience, though, when I read the wrong addresses or 8- bit bytes from the device.
The device really demands that you start, send the byte read command, read all 3 8- bit bytes (hi, lo, pec) then stop it.
t