How to get at the 'status' of a game object?

You know how normal game objects created from Prefabs (like imported Meshes), in the Hierarchy, their names are in a blue font, right? And if you change that GO enough, it 'destroys' the Prefab, and the name is now black. And if you managed to mess up your library, the name is dark red or brown.

So, I'm trying to script a 'repair' utility. I manage to repair lost meshes and materials. Problem is, the name is still 'brown' as though it's still damaged. My guess is, it thinks it's a Prefab that's disconnected yet.

Oddly, the damaged object (in brown) thinks it's a Prefab, it says so in the Inspector. It never was! It was a model! If I drag a new copy of the model to the Scene, it says Model right there, not Prefab

So, is there a scriptable way to 'reattach' an object to a Prefab? or 'reattach' the Model? Or is there a way to change the 'status' of the object such that it's blue, not brown?

Check this out.