Я не спец по трекпадам, но подозреваю, что здесь все работает на емкостной связи и когда вы сделали отверстия, вы эту самую емкостную связь нарушили.
Появилось несколько вопросов:
1) Как вы ведете проводники по нижней стороне?
2) Какой вы используете контроллер сенсорный - врядли вы эти все пины прям на мк ведете напрямую?
3) Как вы инициадизируете управляющую программу в мк?
Вы считываете инициализируюзие записи с которыми потом мк сверяется при обновлении данных при раьоте тачпада?
4) Еще момент - может ди у вас быть не протрав или наоборот разрыв проводников в месте отверстий?
Вот эти два места прям странно разведены
5) Есть ли у вас поправочные коэффициенты на не полные линии сенсоров с отверстиями, чтобы инициадизация и последующая обработка были корректными?
Если нет, то думаю нужно ввести эти поправочные коэффициенты для неполных линий сенсоров. Что возможно логично и вы уже это сделали.
6) Какая математика заложена в мк?
Если там есть минимальная предсказательная модель с проверками, то она увидит невозможные случаи вокруг отверстий и загнется, что логично.
Мало информации.
У вас программа 100% ломается из за некорректных приходящих "на" или "с" контроллера, а причина некорректности в том, что вы подаете и анализируете все исходя из предположения, что все столбцы и строки равны, а это нн так во втором случае.
Возможно нужно избавиться от дефектных прямоугольников и сделать вокруг пустое пространство только с полными квадратами, это должно восстановить корректность измерений между слоями.
В любом случае это программная ошибка и копать прийдется.