I2C: Trying to read multiple registers, getting first register repeated instead
I found the problem!, I totally missed the part of the datasheet that explains how to send it I2C packets (section 5.1.1 as MaNyYaCk pointed out).

When reading this device, least significant 7 bits you send should be the address of the register you want to read, the most significant bit tells the device if it should increment the register address when reading multiple bytes.

To fix this problem I had to change the following line of code:

i2c_master_write_byte(cmd, reg, 0x1);    //tell it what register to send , ack check is enabled


To:

i2c_master_write_byte(cmd, reg | (0b10000000), 0x1);   //tell it what register to send , enables the increment register address bit , ack check is enabled