If Coach X does a solid evaluation and finds a diamond in the rough, and he comes to play for him, then it'll only take at most 2 years for a bigger school to come calling, and then boom, he's gone. This is what happened to Addison, or anyone else.
But in what profession is that not the case? If I do well at my job, and another company hears about me, and calls me and offers me a job that pays higher and gives me a better career trajectory, why WOULDN'T I at least entertain it? I'm not my company's property.
If I was doing it, I'd cut a player an initial deal for 2 years that guarantees he could stay for 2 years and receive opportunity for X amount. Then after 2 years, he gets the option of signing another deal with the same collective, or opting out and trying his luck elsewhere. Because either a player is going to like his situation and deal and all of that, or he isn't. You could include a clause that states if a players leaves before 2 years, then he is forced to return a percentage of the earnings he had garnished. The coaching staff would just know that if they sign a kid, they have two years to decide on him basically.
That way, if a player wants to transfer or if a coach decides they aren't a good fit, they're free to do so after 2 years. And if they want to re-up for two more years, they can, and then go pro after, or whatever.