Not sure, I'd suggest a ticket. Personally I have it wipe all the acquired info each season and start fresh. I keep nothing going forward.
I have a similar keeper system where we assign a contract (which I rename to "Keeper Number" or KN) equal to the round they were drafted. This number reduces by a certain amount per year kept (4 for us as a full IDP league). This KN is thus the round you give up when kept. So if I drafted Cam Newton in the 18th round this year I can keep him for a 14th next year, 10 the year after and so forth until I feel he's not worth it anymore.
So what I do to fill this in is I change the default contract for each round in the draft. Start with 1 for the 1st round, then change to 2 for the 2nd round and so forth. This will automatically fill in the contract/KN field with the number of the drafted round. A bit of manual work but way less work then manually entering it for 28 round worth of 12 teams. Then next year I simply use the field to reduce by 4 and click a button and it automatically changes all the contracts for all the players. The round drafted acquired field helps me make sure I didn't make a mistake but otherwise is just a "for fluff" field since you can't do anything automatic to it I don't use it for anything important.
The other thing I'll do with the field is when keepers are in I'll change the field to "Keep" for the keepers and wipe out the info for any player not kept. Then going forward that year it will get either a draft pick or other designation (such as Trade or FCFS or BB Waiv) depending how the player was acquired. But in all cases that important contract/KN stays the same and follows the player around no matter what happens to him.
Just giving insight into how I handle it. That may not work for you.