Григорий: не мудрите. Вы сами себе голову заморачиваете.
Все очень просто: чтобы сертификаты другого УЦ не принимались некой ИС (пусть в том исполнении, которое Вы описали) обязательно надо куда-то "зашить" параметры промежуточного корневого, которому "можно" выпускать сер-ты для этой ИС. Без вариантов.
Т.е. надо разделить проверка на 2 части:
1) проверка цепочки сер-тов - тут юзаются все сер-ты цепочки и все СОСы
2) проверка клиентского сер-та путем проверки сер-та над ним (промежуточного) между корневым и клиентским. В клиентском сер-те есть данные издателя (данные промежуточного УЦ) и вот по нему и надо отсеивать "неверных"