Paul,
I think your approach is good. To copy the Control Output from one axis to other axes, you will need to make a user program that sends a Direct Output or Open Loop command with the desired value to the other axes. This step will need to repeat continuously. With this minor tweak, I think your whole approach is entirely valid.
And yes, I would expect that running an inner loop on the swash plate will be of great benefit. Otherwise, the swashplate will likely swing wildly.