[I2C] onRequest and onReceive as slave with Raspberry Pi Master

SMBus Read Byte: i2c_smbus_read_byte_data()

This reads a single byte from a device, from a designated register.
The register is specified through the Comm byte.

S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] NA P

It seems that your call transfers the byte and then does not send a stop condition but a repeated start condition. The TWI library doesn't handle this correctly. You either have to program the hardware directly or use other commands on the Raspberry Pi (a combination of write() and read_byte()).