Funny. We have a 12 team league on CBS and have almost exactly your settings. We have 3 minor league spots that you can keep so long as they're still a minor leaguer to start the next year and you haven't used them in the year before.
I'm trying to walk the line between rewarding foresight without allowing teams to hoard players so much that the next year becomes a foregone conclusion and is interesting for everyone.
One alternative that I proposed this year, but didn't get enough votes to pass, is that we would keep 3 minor league players and everyone you drafted as a minor leaguer in Year X you could unconditionally keep in Year X plus 1. The tradeoff is that you couldn't use them, no matter what, in Year X. So if you wanted to leave them as a minor leaguer, again, in Year X plus 1 and they're still a minor league player, you can. But anyone who you want to use that year you have to promote. So it becomes more of a pure investment vehicle. I don't know how it would play out fully since we didn't do it but it's the best alternative I could think of.
0-3 to 4-3. Worst choke in the history of baseball. Enough said.