I can't believe ESRI has no solution to this problem. It has happened to me multiple times and I have lost a large amount of work time due to this issue.
I've had Arc Map crash in the middle of editing a model (very frustrating). I've never tried to recover a model that crashed. I hope you can find a solution!
I've seen the "can't save" message before. I don't recall it not saving and not giving me any other option. I use the "save as" command under the "Model" menu in Model Builder. This lets me save a copy of the model under another name. Then I close down, start up, delete the old model, and rename the newly saved model.
So much time and $ goes into these things, that it is real letdown to loose the work. On a big model, it would make sense to save a backup copy once in a while.
I'm not certain, (and only ESRI knows), but I think the occasional problem with saving has to do with the file locks. Somehow the temporary file locks (write permissions) get mixed up and the program thinks you are trying to save the file someone else has open. I've had this happen on models as well as MXDs. I find that with the ESRI products one has to assume there are inherent file instability and management issues that warrant caution and prudence to reduce file losses: backup at milestones, save often, pray, etc.
This is so frustrating!!!
I'm now in my 3rd strike of this issue over this one project.. I've now lost about a days work and about as much trying to recover the model..
I've noticed some strange behaviours that indicate that the ship is about to sink. my Save as/ Add Data dialogue has no more content in folder connections etc. This gives you a last chance to expand the window to both monitors and print screen the entire model to paint to capture the logic/changes.
I've also learnt to version my work regularly.. ie when I'm about to embark on major changes to my model I copy and version.
I've now seen this behaviour in personal databases and .tbx files... and the repair geodatabase method in arcpy won't repair models..
It may be little comfort, but my recommendation, so as not to find yourself at the mercy of ModelBuilder, is to minimize the role of ModelBuilder and progressively replace your models with Python script tools written using ArcPy.
I made the decision to Use Model Builder fro this project so that I could explain the logic to the "users". The model Is now getting pretty big as the what if decisions keep getting made.. It now has 7 Network Analyst service areas. and uses in_memory workspace for most intermediate data.. If this rebuild fails I'm going to export it and code the rest via arcpy.
I made the decision to use ModelBuilder for a large project for precisely the same reason i.e. to graphically document the process. That application now uses a mixture of ModelBuilder and ArcPy/Python and my intention is to retain the overall workflow as an over-arching model (to keep the process visual and easy to explain) and to have everything under each "building block" be ArcPy/Python code. If you are planning to export a large model to Python script you may find that it results in difficult to read code (that is difficult to debug) due to the way it names its variables, and if there is iteration then code that won't work. My approach is to use Copy As Python Snippet to re-build models as ArcPy/Python script tools instead.