What I do in situations like this is preprocess the data. Use the SSIS job to copy the data to a temp table, scan it for errors and mark the errors.
Your temp table should have columns for the errors so you can easily select on which ones are bad. I personally use 2 columns, ErrCount for the number of errors found on the row and ErrDesc which is a large varchar describing the errors in words. Works well for working with end users.
Depending on the errors you can stop the job and print the errors or continue with the import.