Я бы выбрал векторный подход. Захватите координаты x, y станций и контрольных точек для путей рельсовых линий в статические данные в коде. Создайте легкие объекты (не UserControls) для каждого сегмента железнодорожной линии и станции, и пусть они визуализируют себя и обрабатывают свои собственные щелчки мыши. Определите железнодорожную линию как совокупность железнодорожных сегментов и станций.
Для поиска пути последнее, что вам нужно, это использовать пиксели, чтобы выяснить, как добраться от А до Б. Вам нужно только дерево связанных узлов, представляющих соединения между станциями, а затем использовать обход дерева, чтобы найти все пути между двумя станций. Для ограниченного количества станций и маршрутов вы также можете предварительно рассчитать действительные комбинации станций и пути, как в таблицах расписаний поездов.