Okazuje się, że był to problem z przekroczeniem limitu czasu transakcji.
Po zwiększeniu limitu czasu udało mi się wstawić listę:
using (TransactionScope transaction =
new TransactionScope(TransactionScopeOption.Required,
new TimeSpan(0, 30, 0))) //30 minute timeout limit