It was a pretty challenging level for me, I planned to just help you find your problem, but I’ll try to give you the idea I used.
When you subtract the ball position vector from the enemy position vector you are getting a direction not a distance . In your code I’m talking about this part.
distance = Vector.subtract(Vector, ballPos)
(The variable name Vector is a problem, use some other name.)
Your distance vector is the right direction you want to send your peasant (from the ball) but not the right distance. It is too long.
I think you picked 5 because you want to send your peasant 5 units away from the ball (in the correct direction, which you already have). To do that you need to make your vector have a length of 5 with out changing its direction.
To change a vector to a specific length without changing its direction you can Vector.normalize() it to give it a length of one, then Vector.multiply() it by 5 or whatever you like to give it that length.
Once you have done all of that, the direction and length will be correct, but the starting place is not. (You will still have to Vector.add() your vector to the ball position vector to get the spot to send your peasant.
Once I did all of that I still had the problem of the peasant sometimes walking into the ball on its way to that spot. That is another part of the problem to solve.