def __setitem__(self, key, value):
    dict.__setitem__(self, key, value)
if key in self._order:
    self._order.remove(key)
Как вы извлекаете элементы из словаря в том порядке, в котором они были вставлены?