Since no one ever answered and I've had the same problem here's what I've done. I searched through endless postings such as Ajcody-Notes-No-Such-Blob - Zimbra :: Wiki and had some very good help on part of the problem but at the end of it I was not able to find a tool or any instructions that I could follow well enough to deal with the leftover blobs.
My solution was to write a quick & dirty perl script that takes the output from:
zmblobchk --unexpected-blob-list /tmp/unexpected-blobs.txt start
then run that through grep:
grep -v [.]bak /tmp/unexpected-blobs.txt >/tmp/unexpected-blobs-cleaned.txt
After that, had a perl script search for the "for" and "From:" addresses in each file (some didn't have them) and if it passed a couple checks - I used:
to resend the messages.
zmlmtpinject -r $toaddress -s $fromaddress $messagepath
Most of the messages that had valid emails were resent... some wouldn't send as the recipient was rejected, but in the end the majority of them showed up in the mailboxes.
I then took a copy of each blob file to an alternate location in case there's a need for further review.
Where I'm stuck now is how to clean them out of the filesystem... I am not sure if it's safe to delete them. I've tried zmblobchk --missing-blob-delete-item but that doesn't seem to do anything to them.