Is there a way to find out why an email address is 'on hold'?
Yes - you want the "Bounce Report".  Click on Reports menu » Mailing Reports, select Bounce Report.  In "Columns", check the "Bounce Reason" checkbox, and ideally "Bounce Type" as well.