0x56, 0x71, 0x81, 0x00, 0x02
is a command to read two bytes from the slaves internal address at 0x8100. Is that your intention?
The first thing the bus master (USB-I2C) must do is send the internal address that you want to read from to the slave (your device). This is a write operation. So every read command you send will be preceeded on the I2C bus by a write sequence. Command 0x54 does not need to send an internal address so there is no preceeding write.
I have a fuller explanation in my I2C tutorial here:http://www.robot-electronics.co.uk/acatalog/I2C_Tutorial.html
Have a look at the section "Reading from the Slave