Also as I change microstepping from the dip switches the slew and track rate changes proportionately. This does not seem right.
If you change the microstepping mode of the drivers, the speed of the motor will change. The MCU doesn't know that you have changed the step rate, it will simply keep stepping at the same rate.
You'll need to set the microstep mode to what you require, ensuring that the value set in the config setup, and the value selected on the driver match match. As the MCU can't change the microstep mode, you will also have to ensure that "Gear Changing" is "Disabled" in the config setup.
Am I supposed to wire the MS1 to 3 outputs low or high, right now they are just floating.
MS1 to 3 are outputs from the MCU. They aren't floating but rather driven high or low by the MCU. You can leave them unconnected
At high speed the motors stall after a couple of revolutions and make a high pitched sound
If the motors stall, you are trying to spin them faster than they are capable of going.
The steppers move fine as long as I have the enable- disconnected, this means the steppers are permanently energized
...
I have tried all ways to wire the enable line if it is as normal with ena+ to 5v and ena- to the enable pin I get no movement, if reversed the same.
The MCU expects the driver to be disabled when it outputs high (5V), and enabled when it outputs low (0V). This is the opposite behaviour to the TB6600.
You should instead connect the EN+ of your driver to enable pin of the MCU, and EN- to GND.