I may be confused but unless you have gcode defined in OctoPrint's
GCODE Scripts Before and After print job, OctoPrint should just be sending the gcode from the file being printed without modification.
It sounds to me like there may be some absolute (G90) / relative (G91) issues. G28 should set the printers coordinate base, the Z-offset should be defined in the "firmware" (i.e. the EEPROM). If it isn't stored in the EEPROM, then the appropriate M851 command should be inserted where needed.