The best approach is to:
-Assess the situation
-Create a task list
-Decide what needs immediate attention
-Create a time line for it all
-Get feedback from team
-Add the business roadmap to you list
-With upper management work on a timeline
-Define your project with realistic times
Execute and manage the project.
It took 12 years to get to this point so don't expect to change it overnight.
BTW, this type of team and codebase is not out of the ordinary. Companies start to program with the idea that eventually the problems will be fixed yet it never happens. Upper management does not care because all they care about is reducing cost and getting the results they need. You're dealing with the results.