Инструментарий для работы и исправления любых феерических ошибок с геометриями и топологией - он есть. Просто бОльшая его часть существует в виде каких-то программных библиотек. На Java - просто тонны всего, как, впрочем, и в мире C++ или питона. Во всякие QGIS в пользовательский интерфейс попадает небольшая часть.. и в виде черного ящика. Я частенько прибегал к использованию низкоуровневых конструкций библиотеки JTS (GEOS - клон/порт JTS в мире С++ для QGIS и PG), чтобы всякую муть вычистить, где ГИСы сдаются на дефолтовом выполнении.. Но это по-сути низкоуровневое программирование в потрохах алгоритмов из мира Computational Geometry, которое нельзя посоветовать как рецепт всем. Сама ситуация - знакомая до боли. Полагаю, что большую часть ошибок можно было вы вычистить скриптом в 200 строк кода на Java + GeoTools +JTS или каком-нибудь питоне, обработав простой логикой геометрии, прочитав SHP и записав корректный.