Pretty much all keeper leagues are going to end up getting lop-sided... the system in which that happens only controls the speed at which it will get lopsided.
You can use auction/salary-cap rules. This has plenty of loopholes still, and makes things very complicated and hard on the commish.
You can increase the penalties for top finishers keeping superstars. This doesn't make a big difference, as they'll get new superstars in the draft with the replacement picks.
You can increase the penalties for top finishers keeping their breakouts. This doesn't make a big difference, as they'll continue to sniff them out before the other players.
You can give incentives for last place teams in the draft. This is a pain, as people will now start tanking their seasons after the trade deadline, and very rarely will they pan out. This now effects the top of the league as well, as the lower teams are dumping games and players.
Truly, I think you just need to accept this... anything more than tiny adjustments are a pain, and you would probably be better off just starting the league over without keepers.
Invariably, there will be good fantasy players and bad fantasy players. Longterm, grinding seasons like baseball tend to help the cream rise to the top, and as franchises live on through many seasons it becomes more and more apparent.
This isn't football, where superstars come and go in one or two years and injuries end broadway careers every week. No matter how you set your league up, and no matter how delicately you decide to balance your rules, you'll always have people who are better, willing to invest more time, and who work harder. There's nothing you can do about that. Everyone is playing by the same set of rules, and it's not like the poor players haven't had the chance to get better... even if you blew the league up right now and started over, the same handful of guys are going to end up on top in two or three years.