Large-scale refactoring usually include custom transformation, e.g., changes to code that are not easily expressed as compositions of classic refactoring operations. If they are, doing this using interactive tools is hard; in essence you have mouse your way through hundreds of changes and you are unreliable as a repeatable process.
Finally, figuring out the chain of actions required is hard; you don't want to do this by hand and get it wrong. You need to the ability to apply the changes mechanically and verify the results over several trials before a production application attempt.
You most likely want to use a programmable refactoring tool. For massive changes, you probably want to consider use of program transformation tools. Such tools allow you to write program transformations as pattern-directed rewriting rules, e.g., "if you see this code, replace it by that code"; normally such rewrites allow pattern variables, too. These are not string replacements; rather they match the program structure (e.g., the parse trees) and can with more sophisticated systems include information about the types of symbols and where information is coming from or going to (dataflow). Because they match program structure and can use deep semantic analysis, they can make reliable changes. Program transformation tools have been used to make massive changes to code bases over the last 20 years. (See my bio if you want to see a specific program transformation tool I consider generally capable of handling complex refactoring tasks).
You'll hear about "model-based" transformation. Usually this means "convert your code to UML class models and then transform them". This approach usually loses the details of the code itself, and it is why the program transformation approach, that operates on code, is much more successful at massive changes.