However, I found oomething very interesting: When I read the two bytes with two seperate read commands they come out differet from one another and even look as if they might be correct!
From the data sheet--information about multi byte reads
The I2C embedded in the L3GD20 behaves like a slave device and the following protocol
must be adhered to. After the start condition (ST) a slave address is sent, once a slave
acknowledge (SAK) has been returned, an 8-bit sub-address is transmitted: the 7 LSb
represent the actual register address while the MSb enables address auto-increment. If the
MSb of the SUB field is 1, the SUB (register address) will be automatically incremented to
allow multiple data read/write.In order to read multiple bytes, it is necessary to assert the most significant bit of the subaddress
field. In other words, SUB(7) must be equal to ‘1’ while SUB(6-0) represents the
address of the first register to be read.
To start at register 0x28 with multi byte reads enabled I think you want to use register address 0xA8.
B10101000 which is 0x28 with a 1 in the seventh bit.