I am attaching a reference that has been hanging on my wall since before I started here. It is used for sine plates/compound angle compensation. It may or may not help.
For the CMM, you have your 6 restrained features (X-Y, Y-Z, Z-X, X, Y, Z). As you rotate or move the CMM resets itself to these constraints.
For example, you take a top plane that is 5 degrees in the real world. If you use this feature to set Y-Z and Z-X, the machine calculates everything as if this is 0 degrees.
The 'alignment' (by my machines terminology) is X-Y. If you rotate this, the rotation happens at X0, Y0, and Z0 as constrained by Y-Z and Z-X).
Where this gets confusing is when you are looking at the 'origin point'. Take rotating a line, the rotation is different if your origin is at point 1, 2, 3, or 4.
1.........2.......3.................4
--------------------------------
Translating follows the same general principle, it is constrained by the same 6 features but you are 'moving' X, Y, or Z. On the CMM I used, if you translate an angled surface, it moves 90 degrees along the constrained feature (X, Y, or Z), and I cannot recall if this is common among the other CMM's I have used. In other words, if you have a 45 degree line and translate it Z+, the CMM I use moves the line 'up' by the amount of translation (it does not move it up and out for example unless I say to translate it Z and (X or Y).
Compound angles are a bit more difficult and I have only programmed 2 or 3 of them so I am working from limited knowledge. However, what I do remember is you have to be very careful to rotate and translate from the exact 6 restrained positions you want before doing the second angle.
I hope what I have written will help.