I then read it in chunks (I don't think this really uses memory?) and write each chunk to the sensor.
file from storage does not take extra memory, the read just gets direct pointer to bufferbacked by the flash storage, so you can get whole file, no need to split into blocks due to memory. not sure how big blocks i2c can write in one call, maybe there is no limit either, so depends what is reasonable for the sensor to receive in one write.
BTW, maybe you can copy your BMA421 code here or link it, could be helpful for other people in future