Counter Rotation

I’m working on a rig that needs to counter rotate a transform node base on another object’s rotaton, the result I want to achied is like Maya built-in function “preserve child transform”.
Below is a simplified example of my rig and the problem.

Sample File (Dropbox Link)

[ol]
[li]sphereMesh has two lattice deformers, ffd_A & ffd_B
[/li][li]A nurbs circle control
[/li][li]ffd_A has two parents (transform nodes)
[/li][LIST=1][li]the first transform node (top most), is parentConstraint by the control.
[/li][li]The second transform node does counter rotation to ffd_B[/ol]
[/li][li]The whole structure looks like:
[/li]

Control
[ul]
[li]parentConstraint ffd_A_lattice_follower
[/li][li]pointConstraint ffd_B_lattice
[/li][li]pointConstraint ffd_B_base
[/li][/ul]

ffd_B_follower
[ul]
[li]Under the same parent as ffd_A_lattice_counterRot and is oriented constraint by ffd_B_lattice.
[/li][li]It was used to get the counter rotation value for ffd_A_counterRot
[/li]ffd_A_lattice_counterRot’s rotation X/Y/Z are (ffd_B_follower’s RX/Y/Z * -1) through expression.
[/ul]

[/LIST]
[HR][/HR]
The problem I encountered is that when I rotate in one axis, everything works fine, as the second or third axis comes in , the sphere start to get unexpected results,please see the images below.