In this business, you sometimes just have to know when to punt. If you can identify when the data dictionary became corrupt (doubtfull), then you can do a restore. Otherwise, export/re-create/import would be your best solution.

You may want to check to see if you are on the latest patchset for your version. This may be a bug addressed in a later version.