This is probably just contributing to the guessing game, but I'll ask anyway...
Based on the difference in the number of records (your statement that the file has 2881 rows and the 2882 reported as processed): Does the last line of your csv input file by any chance contain an extra blank line at the end?
The failing commit could indicate that the table you're inserting into has restrictions in place that will not allow blanks, for example and therefore rejects the row insert. Normally that would show up in the log as an SQL error message stating this, but since you're using a linked server, maybe not.
Anyway, Notepad++ is your friend when inspecting the source file.