So, logically, 1 of three things could have happened:
1) Something's wrong with the list
2) Something's wrong with the piece design
3) The USPS screwed up.
#1 can be eliminated by a very simple test. Take a couple of the cards that were returned, or, randomly take 2 or 3 records from your data base. Go online to USPS.com and select "Find A Zip Code". Key in the addresses. If the address is good, it will display a "plus4" after the zip code. If not, the address is bad. This could probably be your best scenario if your agent handed you the list, and, you printed and mailed the list he handed you. Now you can deflect blame to him (except that, in reality, you really should be CASS-ing and cleaning any list given to you by a client prior to mailing to prevent this very scenario).
If the list is clean and good, then, let's look at your piece design.
I'm not going to get in to the specific measurements of the "OCR Clear Zone", but, oversimplification would be this:
Draw a horizontal line from the left edge of the post card all the way to the right edge of the post card where the line just barely touches the top portion of the characters on the top line of your address block. Does any portion of the return address information extend below that line? If so, then their OCR equipment may scan that address instead of the recipient's address. I'm not even going to get in to why you would put the return address in a larger font than your mailing address. Most mailers make that return address as small as possible. I've seen some that even put it in a non-OCR readable font such as a script font to prevent this specific situation.
If it's not 1 or 2 above, then it's the USPS's screw-up. Good luck with finding a solution for that.
If it's a good, regular customer, you're talking about $73 in stamps, plus print/cut/tray for 100 pieces. I'd just run it again after making sure 1 & 2 above are good.