SqlBulkCopy slow as molasses
Do you have any indexes, triggers or constraints on that table?
That will cause slowdowns on insert - especially a clustered index would hurt. When blasting the amounts of data you're doing, it's best to drop indexes first, and re-apply them afterwards.
A good post about it is here: What's the fastest way to bulk insert a lot of data in SQL Server (C# client)
If you have lots of data, setting the batchsize to a reasonably large number might help:
bcp.BatchSize = 10000;