I believe this is probably a widely known issue, but I will throw it out there as well. When I recruit villagers from further away locations (particularly have issues with Blackridgepool, Crasmere, and Horndean), they will often get stuck trying to make their way to my Settlement. Sometimes they will walk into water and just sit there, other times they will stand on the edge of a cliff. Quite a few ways for them to just never make it. In two cases, I went to try and pick them back up, and they just would simply not respond to me, or any of my commands. Tried sleeping and coming back, as I heard it sometimes helps, but that did not work either. Ended up having to dismiss them.
My current workaround is to bring a few simple hatchets for them and send them at the nearest bandit camp. Gets them back to the Settlement, although quite disgruntled.
My suggestion would be: Any newly hired recruit will walk away and disappear after being recruited, and a timer will start a count down, perhaps based on the distance. Once the timer is up, they will show up in your Settlement automatically. Say, maybe they needed to go get their stuff together, say their goodbyes, and then go through the long trip (if you want a "roleplayish" explanation for it). This would avoid them needing to manually navigate the terrain completely. Otherwise, if there is a way to just get them to follow the roads up until X distance from the Settlement, that would work as well.