У маршрутов могут случаться события mouseenter и mouseleave. Также у маршрутов есть опция visible. Так что всё просто - цепляем к маршрутам обработчики событий, в которых переключаем visible:
const routes = new ymaps.GeoObjectCollection();
map.geoObjects.add(routes);
routesData.forEach(n => ymaps.route(n).then(route => {
route.events.add('mouseenter', onMouseEnter.bind(route));
route.events.add('mouseleave', onMouseLeave);
routes.add(route);
}));
function onMouseEnter() {
routes.each(n => n.options.set('visible', n === this));
}
function onMouseLeave() {
routes.each(n => n.options.set('visible', true));
}