What file are you using? Whichever one it is, play the file as is and see if the same thing happens after a few games. If so, its the file itself. If not, you edited something that screwed up the file.
However, there is a possible way around it and yes, its another work around that I figured out years ago but be advised that you're going to have to start your franchise over because you can only do my work around in roster files as it cant be done in franchise files.
In the roster file, go to team rosters and start with the 49ers.
Release all the QB's and assign them back to the 49ers in order of their ratings. Highest to lowest. Next, release all the RB's and assign them back in order of their ratings. Do this for every position but complete each position one by one. After Punters (which should be last), release the QB's a second time and assign them back in order of their ratings.
Next, go to the 49ers depth chart and fix it the way you want it to be. You need to do this because assigning players at each position puts the first player assigned at both receiver spots, guard/tackle spots, etc.
After thats done, start a franchise with them and play a few games and see what happens.
And actually, im just thinking of something else. Before trying the above, are you using a custom playbook or editing the playbooks in franchise? Did you edit playbooks in the roster file and then start a franchise? If so, there's a great chance thats the problem.
In short -
1) Simulate the file your using in franchise as is to see if thats the problem
2) Check playbooks
3) Use my release and assign trick
Hope this helps.