Rough idea:
Why not a profit sharing agreement whereby some kind of players union and the school agree to a set amount of profit share based on an agreed upon player by player calculation? Profit share would be the net of the amount of the school's board, meal, and tuition expenses as stated in its cost of attendance, and whatever share of the players profit.
You could calculate player profit share / bonus as a factor of % of minutes played, % of points / blocks / assists / steals, etc, and team goals (win %, conf. win%, etc.). Goal would be to have a certain locked percentage of revenue flow back to the players regardless as to avoid malicious accounting / investment by the college or university.
The profit share could have a unique vesting period over a 4 year period whereby you're eligible for a certain percentage of your earnings based on your year of eligibility.
For example, for simplicity's sake, let's say the 4 year schedule was 20-30-60-100, meaning you're entitled to 20% of your earnings if you leave after your 1st year, 30% after your 2nd, etc.
A star player comes in and nets $100k in his freshman year based on the calculation. If he leaves after his freshman year, he's entitled to 20% of the $100k he's earned, so $20k. If he stays, he has $20k in the bank to play with starting 2nd year (or maybe there's some kind of investment vehicle since a lot of these kids have never seen money like this).
He decides to stay for his sophomore year, takes the team deep in the tourney, and "nets" $500k in his 2nd year.
He earns the additional 10% from last year ($10k) + 30% of this year ($150k). He has $180k vested, and $420k unvested. He weighs an additional year at the school vs. entering the draft, and knows that he will earn $180k ($30k 1Y vesting + $150k 2Y vesting) JUST by coming back for his 3rd year. However, he's guaranteed to go Top 25 in the draft.
He decides to take his chances w/ the NBA and forfeits the unvested $420k, which then is pooled back into the athlete scholarship fund or something similar. rinse and repeat.