This is my North Arrow, it has both nested Project North and True North arrow and both can be rotated independently.
How I get around the issue of the point moving when the arrow is rotated by a parameter is I add a circle with an invisible line (dash line in image) that encompasses the entire arrow with the center of the circle where I want my rotation to happen.
Revit always likes to rotate families at their defacto centroid so adding a circle forces the center to where I want it and thus removing the need to lock and constrain with a bunch ref lines and other things.
