Thanks for the advice guys, I've fixed it without a reinstall.

As dstruct2k suggested it was MotionJoy that was the problem. Had to go to Microsoft Controller for Windows in Device Manager and right click on MotionJoy and uninstall
driver. That was the only way to stop it overriding the Microsoft
drivers.
I can now fly jets in BF3! Awesome! Thanks for the help, this forum is fantastic!