I would split the keepers into categories. Something like...
* You can keep 1 player drafted in rounds 1-3
* You can keep 1 player drafted in rounds 4-7
* You can keep 1 player drafted in rounds 8-14
* You can keep 1 player drafted after round 14
And then each year he's kept, a player's category moves up one... so if you drafted say, Justin Upton in the 12th round this year, he would be your round 8-14 keeper in 2009. And then if you wanted to keep him another year, he would be your round 4-7 keeper. If kept another year, he would be the round 1-3 keeper. And then the year after that, he couldn't be kept.
You want to reward people for picking up good players lower in the draft. But players should go back into the pool every few years just to keep it interesting. Also, I think it's easier to make a mistake having too many keepers than it is too few. Try it with only 3-5 keepers to start. If you want to add more later, you can. But I doubt that you will. Also, you should come up with a designation for WW guys... I'd call them a Round 4-7 guy if people want to keep them to reward good drafting versus just picking up whoever gets hot.
0-3 to 4-3. Worst choke in the history of baseball. Enough said.