похоже, при последнем сохранении произошла ошибка записи в файл shp или dbf, и теперь кол-ва записей в них не совпадают. очевидное решение - выровнять кол-ва записей, изменив dbf файл напрямую, не затрагивая shp. проблема в том, что очень велик риск рассинхронизации файлов, и тогда атрибуты многих объектов окажутся приписаны к другим объектам. еще нужно убедиться, что структура файлов не повреждена. пути есть разные. дамп обоих файлов глазками пройтись, верификатор какойнить поискать, скормить приложению одиночный shp. а найдя место разрыва, ручками дописать или удалить записи. в общем, гемор это еще тот. и скорее всего создать заново будет проще.