Thanks guys,
So I have messed with the acceleration settings of the motors and it made a very slight difference I think but it did not solve the problem of going to far after hitting the home switch.
I have also tried adding debounce (up to 4000 from 0) in the general config settings however that dident seem to make any difference to the problem I have when limit switches are enabled.
I have however found a way of homing without my machine trying to destroy itself, that was to turn the homing speed down to 3%, that way it doesn't go far past the switch before it backs off. (This is still with the limit switches turned off)
Im not sure if it makes a difference but the Diver board im using is DDSM4V5.0, which came with a DDream plugin for Mach 3. In the manual it recommends going to the plugin config and adding the following values which is what I currently have set. Should I be changing these settings to something else in the plugin config?
Device Buffer: 400ms
Jog Buffer: 100ms
-----------------
I do however have a new problem though which I dident notice before., My machine wont home Y axis, it does Z, the X and thinks that it is finished. I have checked Y axis is enabled everywhere I can think of and I am able to jog the machine along the Y axis with no problems. Also upon importing Gcode it doesn't show up in the table view so I think the machine must think it cant use Y for some reason? Any ideas?

-
Thanks guys,