To provide a little bit of hope:
I recently when through updating TwoToneDetect from Python 2.7 to 3.X. I had been putting it off for a long time and was dreading it, but in the end it didn't end up being as bad as I had feared. I used 2to3 as a starting point and that took care of easy stuff like print statements, and then after that just started tackling the error messages one at a time...after a few of those...all of a sudden it worked. What I had anticipated taking weeks ended up only taking a few hours. OP25 is certainly more complex and will likely take more effort, but hopefully it'll be a similar experience.
Andy