Tom,
I was disheartened that my suggestion for improving the health of your iPhoto file did not work. I realized today that I had done a step before that I had not mentioned to you. My assumption was that step was a waste of time. I realized today that maybe that step enabled the other step to work. I've laid out below a rigid process you might like to try. It incorporates everything I think worked for me. My intention would be to share this with Apple if it works. I'm using a pseudo-code method. Everything following a semicolon is a comment.
Known issues that will use workarounds:
1. iPhoto has problems with faces that are added, are not anything close to square, and have one edge of the frame coinciding with the edge of the picture. One can see that error by creating such a face (say 5 times taller than wide), on one edge of the photo. iPhoto will show the face both on the photo and in the sidebar, however if one goes to a different photo, then returns, the face box and name will be missing. Workaround: don't identify that face
2. Dock has problems using the iPhoto library as a source for desktop background when multiple monitors are involved and all are using iPhoto. Problem is exacerbated when the user changes the library they are working on. Dock hangs up, driving CPU usage over 90%. Workaround: don't use iPhoto as a source for Desktop Backgrounds or screen savers.
3. iTunes is aware of the filename of the iPhoto library that has been synched to the iPhone or iPad, but only has access to the iPhoto library last active in iPhoto. If one attempts to synch an iPhone or iPad when the last opened library in iPhoto was not the one last used to synch the iPhone or iPad, iTunes will offer to erase all photos and start over. Workaround: if that warning appears, close iTunes, open iPhoto and select the library you want synched. Reopen iTunes and proceed normally.
Suspected issues with iPhoto:
1. The automatic face detection process has a bug which can lead to a contaminated database. There is no known way to turn this off in iPhoto.
2. I suspect the Detect Missing Faces option in iPhoto simply manually activates the automatic face detection process for the photo which is open. Because that process has a suspected bug, do not use the Detect Missing Faces command. Instead, add new faces manually.
3. The Rebuild feature of iPhoto tends to make contaminated databases worse. Do not use this feature. The iPhoto Library Manager rebuild feature does not either make the issues worse, or fix them.
Overview: The process below makes a new iPhoto library from each Event in your existing Master Library. That new library is then repaired and imported into a New Master Library. After that import each Event Library can be archived for potential future usage.
Keeping track of the numbers: I think it would be helpful to keep track of the number of issues and number of issues repaired at each step. I've used the term "Record" in the lines below to mark suggested places to capture numbers.
Setup: The process below will triple the disk storage requirements of your current Master File. If you archive each Event Library off your main drive, you will only need twice the space plus the size of your largest event's new library.
Find the least corrupted recent copy of your iPhoto library. I'll call it the "Master Library." The libraries created from each event will be called "Event Libraries." The new consolidated library will be called "New Master Library."
<Start>
For each Event in Master Library
in iPhoto Library Manager (ILM) create a new library called the same as the Event
in ILM, select the Master Library and drag that Event to the new Event Library
Open the Event Library in iPhoto
Record the number of photos
Create a new SmartAlbum where: Face is unnamed
Name the new SmartAlbum "Unnamed"
Record the number of photos in Unnamed
Empty iPhoto trash
For each Set of about 15 photos ;The process is faster with larger sets, however you will need to remember, visually, which photos were in the set to see which were cured and which were not. Number you choose is at your convenience
;Throughout the process below, the photo you are working with may disappear. That is because it no longer meets the SmartAlbum criterion: it contains an unnamed face. This is a good thing and not cause for concern.
;Pass 1
For each photo in Set
Double-click the thumbnail and select the Info button in the lower right.
Ignore the content in the right-hand panel below the word "Faces"
Correct the faces in the photo. Delete detected unnamed faces which are either not faces or are faces which you do not want to track. Use the "Add a face…" dialogue to add missing faces.
Next photo
Select all photos in this set
Press Option+Command+Delete ;As this is an album and not the photos list, pressing Delete by itself will only delete it from the album
Select the iPhoto Trash
Select all photos in iPhoto Trash
Right-click, select "Put Back"
Return to Unnamed Smart Album
Record the number of photos in this set that have returned
;Pass 2
For each remaining photo in this Set that has reappeared in SmartAlbum Unnamed
Double-click the thumbnail and select the Info button in the lower right
Throughout the process below, deleted any undesired Unnamed face when you see it.
For each face:
Delete the face
Use the "Add a face…" dialogue to put the face back ;sometimes you will find an Unnamed face behind a named face
Next face
Next photo
Select all photos remaining in this Set
Press Option+Command+Delete
Select the iPhoto Trash
Select all photos in iPhoto Trash
Right-click, select "Put Back"
Return to Unnamed Smart Album
Record the number of photos in this Set that have returned
;Pass 3
For each remaining photo in this Set
Record the meaningful metadata (date, location, faces, description)
Export the original photo to some convenient location
Delete the photo using Option+Command+Delete
Empty the iPhoto trash
Import the photo
Restore the metadata
Record the number of photos in this set that have returned
If the photo has returned to SmartAlbum Unnamed
Delete the photo using Option+Command+Delete
Open the exported copy of the photo in Preview
Save it with new specifications ;example, if it is a TIFF, save as a .JPG
Import the new photo
Restore the metadata
End if
Record the number of photos in this set that returned
If the photo has returned to SmartAlbum Unnamed
Delete the photo using Option+Command+Delete
Move the exported photo to a problem photos folder
End if
Next photo
Next Set
;At this point, the SmartAlbum Unnamed should have no contents
Under Library, select Faces
Record the number of Key Faces that are black
For each Key Photo that is black
Select a different Key Photo
Next Key Photo that is black
Record the number of Key Faces that do not show the face of the named person
For each Named Person
Double-click the Key photo
For each photo in Named Person
Double-click the photo and make sure Info is selected.
Correct the faces in the photo. Delete detected unnamed faces which are either not faces or are faces which you do not want to track. Use the "Add a face…" dialogue to add missing faces.
Next photo
Select all photos for this Named Person
Delete using Option+Command+Delete
Select the iPhoto Trash
Select all photos in iPhoto Trash
Right-click, select "Put Back"
Next Named Person
Go to SmartAlbum Unnamed
If any photos appear, follow the process above to clear them
Close iPhoto
Open ILM
If this is the first Event, create a new Library called "New Master Library"
Select the Event Library
Drag all photos to the New Master Library
Open the New Master Library
If this is the first Event, create a new SmartAlbum where Face is unnamed. Call it Unnamed
Verify SmartAlbum Unnamed is empty. If not, record number of entries. Likely no point in continuing.
Next Event
<End>
Hope this helps!!