Getting an accurate animation is dependent on several factors, animation speed, animation frames, movement speed and the distance the animation has the character reach/climb per cycle.
You need to figure out how fast the character is moving based on the animation, for example, if the animation is 12 frames long, played at 12fps , whatever distance he moves per rung for the animation would be your speed.
An example of what you've got would make it easier to see why things aren't syncing.