Is the maintenance hit real, or does it just bother you? If it only bothers you, leave it alone.
Is the performance issue real, or did the previous developer only think it was? Performance problems, more often than not, are not where they are thought to be, even when a profiler is used. (I use this techniquethis technique to reliably find them.)
So there is a possibility that you have an ugly solution to a non-problem, but it could also be an ugly solution to a real problem. When in doubt, leave it alone.