Столкнулся с похожей проблемой, только источник у нее был другой, ранее инфоблок с товарами был "торговым каталогом" и товарные предложения были "торговым каталогом" (из-за кривого обмена с 1С), после того как сделали нормальный обмен, у товаров убрали галку "Является торговым каталогом", чтобы нормально считалась доступность исходя из доступных товарных предложений, но не смотря на доступность ТП, товар имел статус "Недоступен", т.к. системное свойство "Доступность" имело значение "Нет".
Причину не нашли (искать причины косяков Битрикса не благодарная работа), но нашли решение, тупое, но работает, нужно пересохранить товарные предложения и тогда пересчитается доступность. Для этого можно массово деактивировать товары, а потом активировать заново и доступность будет корректной.
Надеюсь кому-нибудь поможет.