Alex - I will explain how it works, although it might not actually help you directly.
When you say "home" the machine, this is a term that refers to the machine going to a certain place on its own - usually to switches set in that position. The machine is then "home". The machine co-ordinates - displayed when the "machine co-ordinates" button is pressed and the led is lit is turned to zero (usualy automatically) see Config/Homing. If you do not have switches fitted, you can make a home position - one to which your machines goes accurately, and then zero the machine co-ordinates by pressing re"RefAllHome"
This position is not the "program position" As you have found, programs have different 0.0.0. positions for which you can make jigs to hold the workpiece.
What you do to bring the machine to that position is apply an offset to the machine co-ordinates 0.0.0. position by using one of the offsets G55 to G59(then 250 others on G59.***). These offsets are entered into your fixtures table (see Config/Fixtures). If the offset is then entered at the beginning of the GCode program, the machine will home to it's home position, then will move to the new 0.0.0 position determined by the offset.(or any other point referenced to the new 0.0.0 position).
So - select a set position to home your machine to, then for each program jog the tool to the 0.0.0 position of the particular program you are doing. Type in an offset e.g. g56 on the MDI line, and then zero the Program Co-ordinates. If you check the fixtures table, G56 will now show the offset for this program. Enter the line "G56" at the beginning of the program, and that is it.
Your program will now run from your "home" position, and then move to the correct start position. If you then have a new program, with a different start position (or 0.0.0 position) you use a different offset. Then for each program you run, the machine automatically moves to the correct start position for that program.
It is useful to keep a note of the offsets (I usually put a message line is the GCode program) so that, if I loose any settings, I can always set them up again.
As I say, this might not be a direct answer to you question, but it explains how it works, and I am sure you will be able to work it out from that.