I've actually fixed this sort of situation at multiple different companies. Typically I end up getting buy in from management once I have started cause it saves money in the long run.
You start by setting up the standard router for all URLs when the php file doesn't exist. You then setup your router to answer somefile.php or whatever file you want. You then have that route execute your own class. You simply delete the original file and it now loads from your router. You can typically copy/paste the code from the file into a function in a class without any modifications. As you go you can get rid of includes / requires all over the place because now you've got auto loader configured so you can just call code from other files at will.
So then I just repeat this process. Sometimes it takes years but I can typically make a huge dent in most systems in the first few months.
If I don't get buy in I do it anyway for any code I'm asked to work on cause it makes the work better and there's no reason not to do it at that point.
I actually kind of envy you. I enjoy refactoring projects like that. You can typically bring that 4k line file you mentioned down to just a few classes and views.