Same here. I leave the "Z" parameter in the fixture offsets set at zero, and control the Z with the tool height offset.
I zero every tool to the table itself. Then, depending on what fixture I'm using, I use the "mass modify" operation in the tool offsets menu, for the specific fixture I'm using.
So for example, say I want to run a part that's held in the stepped jaws of my vise. The step is 5.900 above the table (I know this because that's where I machined the jaws).
So in that case, from "Enter Next Command" I'll hit space, 6, 3. It then prompts me for the starting tool number. I enter 1. It then prompts me for the ending tool number. I enter 22. It then prompts me for the offset. I enter 5.9. Presto, all my tools are now zeroed to the step of the vise jaws. I only have a 21 tool changer, but position 22 keeps track of where everything is set. It'll have 5.9000 in it.
Later I want to run something that sits on a different fixture that's 3.0763 high. I hit space, 6, 3, and look at the offset for tool 22. I see it's 5.900. I then do a mass modify on tools 1 through 22 again, entering -5.900 as the tool height offset. This brings everything back to the table. Then I mass modify 1-22 again, entering 3.0763 as the height. Presto, all tools are zeroed to the fixture, and 3.0763 is recorded for position 22.
This is the way I was taught to do it when I got my first Fadal in 2003. Early on, I noticed that the fixture offsets table also has a Z height offset parameter. I experimented with using it instead. It didn't work, and I couldn't make sense of how it was behaving, so I just went back to the way I was taught. Been doing it this way for 16 years now. Works fine.