Я вижу подобное поведение. Моя гипотеза состоит в том, что один или несколько слоев DataTemplate каждого элемента в списке поглощают RoutedEvent, который должен был привести к новому выбору. Можно ли, в общем, сказать элементам в DataTemplate, что они никогда не должны останавливать событие от всплытия или туннелирования в дальнейшем, без необходимости переопределять каждый обработчик события фокуса в коде позади?