Dictionary<int,object>
сериализуется без ошибок в какой-то странный тип(Equ... — не запомнил), в котором на принимающей стороне 0 элементов.
Dictionary<string,object> сериализуется с элементами,
но ключ из вида KeyName преобразуется в keyName. В итоге, что первый, что второй случай потенциально являются источником багов.