Are you saying you have lots of INVALID objects in DBA_OBJECTS? Are they SYS/SYSTEM objects? Do you have any messages in your alert log?

I would try to recompile the PL/SQL packages by running @?/rdbms/admin/utlrp.sql and then re-check for INVALID objects. However, it appears that you may have to try and rebuild your data dictionary all together.