You've got an odd problem there Bob. I've got some questions for you:
Does the Z axis "overshoot" the intended position whenever the DESTINATION is a Z - dimension, or does the axis move .4500 too far whenever it's going in the negative Z direction? There is a difference.
If you look at your "Command" page, you should be able to see all the G-codes that are effective at that moment. Can you list those G-codes for us when the axis is out of position?
You say that you're using an offset to compensate for that .4500 error. How are you doing that exactly? Could it be that a tool offset is becoming effective with a Txxxx command, then you're not canceling the offset with a Txx00 command?
Does the servo move into position smoothly, or does it do a little mambo-dance when the Z moves into position?
Let us know ..