Never worked on a Waterjet, but here is my idea (may or may not work, other programmers can also comment).
Use 2 distance sensors placed in 90 degree.
For every tool make a reference program which gives variables (offset x and offset y) to be zero.
After every swap run the reference program calculate the Distance and get the offset wrt reference value and add it into the TCP
Its just an Idea an implementation and experiment may work as well.