SurferTim:
I don't see an endTransmission function call anywhere.Wire.beginTransmission(I2C_address);
Wire.write(register_address);
// add this
Wire.endTransmission();
edit: I see it now. You have it at the end of the next line. I guess you need to check the return value. https://www.arduino.cc/en/Reference/WireEndTransmission
It's there, just in the most stupid spot possible.
I2C_write needs to have beginTransmission, not begin. You call begin in setup.