Someone spoke to one of the villagers that I really want to keep before I could stop them. What are the chances that they are going to move, and what can I do to make them stay?
That's not how it works at all... I heard people reporting they got a villager from a friend's town and they didn't talk to that villager at all (happened to me too, Jacques moved into my town and I never talked to anyone's Jacques xD; ). When your villagers move seems to be pretty much random, with nothing you can do about it except stop them when they tell you they're thinking of moving. So you might want to stop stressing over other people talking to your villagers, it makes no difference and that kind of rule just puts people off anyway.
In this game, talking to others peoples villagers wont convince them to move to their town (unless they are already packed up in their houses). I personally like going and saying hi to other people villagers if I'm visiting them, it's fun to see all the different characters. I don't mind if people say hi to mine either.
If the villager you're hoping to stay comes up to you all happy and eager to talk, I would talk to them. Chances are they are telling you themselves they are moving or planning to in the next few days. To stop them just say 'no' or 'please stay'. One my favourite villagers is just so eager to leave that each time I have to tell her no hoping she'll stop after a while.