OK I think I have it solved for you.
Rule 1 do NOT use G54. Set your init string in config to add G55 as the base mode.
Rule 2 do NOT use the subcall M98 P1 L1 with the sub code INSIDE the Gcode program . Move your subs to the SUBprogram dir and call them with the Redirect call
M98 (Test.txt) L1
SO FAR that has solved all the TC, multiSUB, Multi offsets problems here.
Give it a whirl,(;-) TP