По поводу раздвоения - можно попробовать сделать не удаление этого бага, а его лечилку.
Asm говорил что это из-за того что герой хранится в сейве (и в памяти) в двух местах - в списке героев и в списке объектов карты. Раздвоение происходит из-за того что координаты в одном месте отличаются от координат в другом, происходит "залипание" одной из копий.
Соответственно и лечится оно удалением той копии что на карте осталась. Чуть сложнее с замками, если герой раздвоился сидя там (у компа частенько бывает).
То есть можно сделать не устранялку причины бага, а лечилку оного при возникновении.