If you want the Safest, Easiest method, then you're not going to like the answer. Using Macro Variables and setting them via a Single Macro Call Block, or have the Variables grouped together at the Start of the program is much Safer and Easier than making edits to the program, where there is an increased potential for errors.
1. Local (Internal) Subprograms are not called in the way you have shown with M98 P1, they're called with a Q address and a sequence number, for example:
M98 Q100 will call the Local Subprogram starting with N100
2. Local Subprograms don't start with an "O" program number, they start with a Sequence Number (N).
3. G53 requires an axis address, not the "O" character.
4. Using the Child Workshift Offset G52 is safer and easier than G92.
5. Unless the control is set to use G Code System B, or C (the default is G Code System A), G50 will be used, not G92
Regards,
Bill