Take out your dial cluster in the car and get someone to turn the speedo cable on the outside and look if its turning at the other end on the inside of the car. you have probably pulled it through too far when you removed the engine and gear box and its not sticking through far enough inside the car. I had this issue when i fitted a speed convertor your cable is probly fine ther just a pain in the ass. Its a matter of getting enough cable sticking out each end. Make sure the outer cover for the cable at the gearbox end is pushed as far into its metal holder as possible this was what caused my probs.
Iv done that and it sticks out far enough on both sides, it's the little cable thing that cOmes out of the gearbox that doesn't turn the speedo drive because iv had the drive apart itself to see if it turns the two cogs inside it and it doesn't so I know their isn't any issue with the cable.
cheers for the advice tho