In the keeper league that my brothers and I have been doing for awhile we use these parameters:
1. Keep up to 4 players that were drafted at the beginning of the year, and 1 player that was a free agent when added to a roster.
2. Players are kept in the round that they were drafted. We also agree that players cannot be kept out of more than two consecutive drafts regardless of the team keeping him, or whether or not they became a free agent at all during that span.
3.Free agents picked up during the year are eligible to be kept in the 10th round. Any player that is traded to another team maintains his keeper eligibility in the same round originally drafted as long as he hasn't been kept out of the draft twice already.
If you have two or more players that are eligible to be kept during the same round (whether because of trade or say a free agent conflicting with your actual tenth round draft pick) you are still allowed to keep both, but must use the previous round for one of them (like using the 9th round for your free agent).
When a keeper eligible player is dropped and placed on waivers, he keeps the same keeper round if added to a roster. If he isn't claimed off of waivers, he becomes a free agent and would then be a tenth round eligible keeper for any team that adds him.
I think thats most of the important facts for our league. And there are obviously many variations depending on what your managers like. Hope this helped!