It's not repairable. The damage is in the system tables
I suggest you export all the data that you can from the tables that you can query (bcp out or similar) then restore the latest backup that you have. Then you can use the exported data with something like Redgate's SQLDataCompare to get the restored database as close to current as possible.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability