If the firmware upload was ok or not, thats not a matter of guessing, the arduino will verify the upload and give you an "ok" message at the end, if you can read that then its ok.
When the motor can move slowly to one direction and not to the other direction, thats a typical situation of a wrong endstop configuration. What happens is the firmware thinks the endstop is triggered, so it will try run the opposite direction to escape from it. So it will move to one direction at slow speed, while it will refuse to move to the other direction because it thinks that the direction where triggered endstop is. Try re-check your endstops configuration.
When the motor can move slowly to one direction and not to the other direction, thats a typical situation of a wrong endstop configuration. What happens is the firmware thinks the endstop is triggered, so it will try run the opposite direction to escape from it. So it will move to one direction at slow speed, while it will refuse to move to the other direction because it thinks that the direction where triggered endstop is. Try re-check your endstops configuration.