unless you have home physical limit switches, you will have to continue your search for repeatable results.
I suppose you could drive your axis to the end stops (X- Y- Z+) and call that the machine (G54) 0,0,0 then;
Once you find where you want the 0,0,0 position to be for your vice or chuck use a dedicated work offset (say G55) zero the new location. Don't forget to save the work offsets.
Then everytime you Boot up, you move your drives to the end positions (X- Y- Z+) and call that 0,0,0 choose the saved the work offset (G55) and then it knows where the vise or chuck was from the last time. Not advisable, but why not try it. Cheaper than adding limit switches, lol, just not as repeatable. Would not rely on accuracy but it might be good enough for your needs.
Kind of why we use home switches.

everything is relative to a known location and we always home a machine on startup or after
heaven forbid a crash.