I was passing 2 floats (8 bytes) whereas you’re passing 1 byte, but the memcpy might still be necessary? I don’t remember.
Another thing I did differently was NOT use hex-notation in my Arduino code. I think it shouldn’t matter, but try changing your line
to be instead the decimal equivalent
Finally, I don’t know enough to know if James Overington’s drivers will work or not… I don’t understand the hal i2c_mgr and semaphores and such well enough myself. It might take a lot of work, but if I were you, I’d copy-and-modify something currently in the ArduPlane source code.
Maybe someone else can be more useful on helping with that?