almost sounds like the starter's not wired right.

maybe take it out leave the wires hooked up and see if its works off the car, you'll need to ground the starter when its unbolted, jumper cable to the nut on the back with a thick wire to to the solenoid on the starter then to the neg post on the battery will ground it. watch the little Bendix gear to see what its doing. when grounded, and key turned to start. and back to run.

it should stay in the nose cone until you hit start, then it should pop back in when you let the key go back to run.

some times they pop out hit the flex plate and stick there. they let out this nasty whine when its stuck on the flex plate when its running.

then theres also the chance of a damaged wire somewhere causing a bridge in power, someone with a ohm meter and the knowledge how to use one could pin point this rather fast i'd think.