Die Frage ist hier, wie du das in C# regelst.
Ggf. führst du hier (unbewusst?) einen Bulk-Insert aus, der wohl auf 32768, also 32K, Inserts in einem Rutsch beschränkt ist.

Erstelle doch je Tabelle einen einzelnes Command-Object mit einem "Insert into mytable values(?, ?, ...)" und generiere die entsprechenden Parameter.
Dann kannst du in einer Schleife die Parameter befüllen und einen "MyCmd.ExecuteNonQuery()" ausführen. dann sollte es locker auch mit mehr als 32K-Sätzen gehen und ist auch nicht langsamer.