The hold switch is a simple on off switch on side is ground and the other side goes straight back to the computer giving it a ground signal. Black is the ground wire at the switch, Brown/black goes back to the computer. See if continuity across the switch changes as you open and close the switch if it doesn't the switch is defective.
Rough idle can be caused by many things, bad ignition components being the usual cause but I have seen bad intake manifold gaskets causing the engine to idle rough like a bad injector or failed spark plug or plug wire. Check the gasket between the cylinder head and intake manifold fro leaks or pieces of gasket missing or protruding out.
Speedometer cable has probably failed but could be a bad speedometer. head or drive at the transmission. The speedo cable is two pieces about $40 each piece and an hour labor to install both cables together.