• Can you not identify whether the rows previously inserted already exist and then do nothing if they do or insert them if they do not. That way you can just restart the packages and not have to worry about restarting from a certain point or inserting duplicate rows.

    Check out: http://msdn.microsoft.com/en-us/library/ms140226.aspx

    read the section 'Defining Restart Points'

    you will see a comment regarding foreach loops