The first idea that comes to mind is to accurately measure the distance between vises, then model it that way in your CAD package, and generate the G-Code for the 2 vises at the same time, in the same file. This requires that the parts be set up exactly the same way in each vise each time, though.
My second idea would be to move the tool to the zero point on the second vise, re-sett the zero point while running the program, then re-run the existing code. Although I've never done this before, I believe a G92 is what you're looking for. Here's what is stated in the TurboCNC.txt file:
I'm not sure if there's a better way to do this, but those were the first 2 ideas to come to mind. Hopefully someone more experienced than myself will give you a better solution.************
G92 Preload of registers/Set machine coordinates
This code sets the position of any or all axes to a specific value. Use this
to reset the position inside a program. No motion will occur.
G92 X0 ;Zeroes X axis
G92 X0 Y0 Z0 ;Zeroes all principle axes on a mill
G92 Z1.234 ;Z is now set to 1.234
You must be in the master coordinate system to use this code. All of the
other offsets (1-20_ follow the master. Ergo, if the origin in offset 1 is set
to be exactly 3" away from the master origin (in G53 mode), then that
relationship is maintained as the master origin moves.
Use jog mode to setup the coordinate offsets (tool offsets) and save them
through the file menu. This command is not modal in versions 3.1 and up.