I need help making a simple compass.

Hello, I’m trying to make a 6dof compass that will be held in VR. I have the cardinal working to where it always points north, but I’m having a lot of trouble getting the cardinals to stay on the compass itself when rotating. The problem is, whenever the compass is rotated and the z axis comes into play, the cardinals are set to stay at 0 z and this causes issues. I’m not sure how to lock it down to the compass but still find north.

Photos: