Odometer reads 299,999 for almost 2 years.

Can't be fixed. The guy that wrote the program for this generation toyota wrote it so it would time-out at 299,999. I have a 2006 Matrix that's been there for about a year.
A service purchased on Ebay will reset your odometer to anything below the factory limit of 299,999.
It cost me $85 and mine was reset to zero miles. Works great.
Search Ebay for "odometer correction service". the one i used was in texas.