Are years-old check numbers really important? I would say "not really". Date, payee, amount, and category are important.You could simply erase old check number ranges. You'd lose the numbers, but avoid future duplicates. The Edit > Find & Replace function allows you to find all checks with numbers less than a specified number. You can't replace them with sensible numbers like 0001, 0002, etc., but you can easily wipe them all out.
If I understand your issue correctly, I might have an easy solution. I ran into this a long time ago and when entering items in the register, I simply precede my actual check number with the two digits of the current year (i.e. 171001, 171002, 171003, etc.). Then, when I download to clear/reconcile, I manually match the item in my register. In 2018, I will switch to placing an 18 in front of check numbers. A little manual, but has worked well for me for multiple years.
Another option would be do a "File>File Operations>Year-End-Copy" keeping only the most recent 2-3-4 or 5 years data in the current file. It keeps the historical data in a file and compacts file size of the current file.