Here's what I think is happening:
1. The insert is successful
2. The server is returning "{ 'err' : null, 'n' : 0, 'ok' : 1 }" for
GetLastError
3. The GetLastErrorResult.LastErrorMessage property should return C#
null instead of "BsonNull" in this case
In short: everything is fine, there is no error (other than the
bizarre value for LastErrorMessage).
Also, the insert operation and the GetLastError operation are two
separate operations, so it is theoretically possible for the insert to
succeed and the GetLastError to fail (for example, you lost your
network connection just between the two operations).
Note: I get the exact same results whether I insert an empty list or a
populated list, so in that respect my results are different from
yours.
I've created a JIRA ticket to fix the LastErrorMessage property:
http://jira.mongodb.org/browse/CSHARP-130