Měl jsem stejný problém a ukázalo se, že problém byl způsoben přepsáním Equals na mapované třídě. Moje metoda Equals porovnávala pouze pole primárního klíče, které bylo polem identity. Samozřejmě, když jsou objekty nové, všechny identity jsou 0. Takže když bylo voláno InsertAllOnSubmit, myslelo se, že všechny nové objekty jsou stejné a v podstatě ignoruje každý kromě prvního.