It can't be fixed to my knowledge, but the answer to the questions is that the game automatically clips the free agent list of players below a certain rating.
The easiest method of ensuring a certain player isn't pruned when you start a new Dynasty game is to ensure he's one of the better rated players in the free agent pool. You can also remove free agents from the active roster by changing their TEAM to 32, which is something I've been doing in my recent roster updates with players who never announced their retirement but are generally thought to be retired or are unlikely to return.