The accuracy of the job and the number of work offsets available to you could have an effect. Also, whether you plan to machine all the same parts at all the stations, or different parts at all the stations would be relevant to your decision.
Take a high accuracy job, with one reference edge on the part as the'worst case'. The fixed center jaw is the locator on the vise. Visually, this puts the reference on the foremost edge of the back station but on the rearmost edge of the front station.
This precludes setting a couple of parts in there and running with a simple work offset from one side of the vise to the other, unless you rotate the program 180 degrees when moving across to opposite sides of the vise. This step is necessary to keep the reference edge of the part in exactly the same relative position to the toolpaths in the program.
Now, you might have means via gcodes, to rotate the part program according to which side of the center jaw you are working on. If so, well and good.
If not, then you should make two programs, using your cadcam system to rotate the program for one of the parts. Then, you can run one program, using unique work offsets all along the rearmost stations on all the vises, then switch to the other program to machine with unique work offsets along the foremost station on all the vises.
Now, if your work has a wider tolerance, or has no requirement to accurately locate the parts along an existing edge, then you could simply assign different work offsets to all work stations, and use one program to machine them all. You would write the main program which would contain the calls for a new work offset, then jump to the sub programs which actually contain all the toolpath code.
Do you want to use one tool at all stations, or do you want to machine complete, but different parts at all stations?