With that many routines and lines of code, I wonder if there isn't some duplication of effort in there somewhere? Are there segments of code that are, basically, doing the same thing as others that, with a bit of parameterization, can be pulled out and put in a library? That would reduce, incredibly, the amount of code you actually have as well as make maintenance a bit easier.
Additionally, how much of your code is "do step 1 with data 1, do step 2 with data 1, do step 3 with data 1" followed by another test that uses data 2, and another with data 3 and so forth? You might want to look at moving the data outside of the code in these instances into some sort of externalized data storage (like a CSV file, an Excel sheet, or a TestComplete DBTable variable) that you can then use some sort of DDT loop to cycle through.
Finally (and this might be more drastic), you might want to consider converting your project (slowly, mind you), into an entirely data driven framework where the code being executed is extremely genericized and modularized and the order of execution and the data used for the execution are all contained within data tables. Plenty of examples out there of such a thing and, for heavy automation with a lot of tests, it might be the way to go.