I can confirm the offsets are correct for this. Only thing I can think of is if your calling code on a separate thread that the function is being called mid update causing it to read a partial amount cause BA2 isn't even the offset so its not Zero+offset here.
The recipe structs were changed...