I have a 3 axis CNC router with ATC.

The controller is a Multech tk200 controller. Which consists of an industrial PC running Windows 7 and some software called Hcarve_3A.
Manufacturers website: Changzhou Multech Automation Technology Co., Ltd.

My problem is with the tool changer. Mechanically it works fine, but it does not appear to handle tool length compensation correctly.

I have measured all the tools so that the relative offsets are correct.
When I position a tool at the workpiece and set workpiece coordinates to 0, the tool length offset (H) for that tool is changed. It actually creates a new H value which is permanently saved. This is surprising to me I think it would make more change to apply a global offset(?), but it will work fine until the next tool change.
When doing a tool change the tool length offset will be incorrect since H was modified for the first tool and the difference is used.
The incorrect offset is saved as that tools H value, so every tool I have touched off on the workpiece will have an incorrect*H*value.
After picking up a new tool the Z-axis will go to to wrong height, sometimes stopping because the moved would exceed the positive soft limit.

The user guide I have does not cover configuration or use of ATC, so I'm not sure if I'm doing something wrong or if it is not configured correctly. (The controller was configured by the manufacturer of the router and they did configure some other features incorrectly.)

Anyone familiar with this controller? Does anyone have a complete user/configuration guide?