Проблема в том, что в отсортированном списке каждый ключ должен быть уникальным. Поэтому вам нужно убедиться, что вы не вставляете один и тот же ключ (значение guid) дважды. Код показан ниже:
for (int i=0; i<objects.Count; i++)
{
DataModelObject dmo = (DataModelObject)objects.GetAt(i);
if (!sl.ContainsKey(dmo.Guid))
{
sl.Add(dmo.Guid, dmo);
}
}
Это обеспечит уникальность каждого ключа. Однако, если вы ожидаете более одного значения для каждого ключа, вам нужно использовать другой тип коллекции.