Can I dynamically create duplicate fields with the Settings API?

If you want to do this with options, save the routes as an array rather than individual options, or save the number of routes in an option so you can dynamically create and fetch them by building the option names based on the number you save.

However, rather than saving this stuff in options, I would make a route custom post type. Route data would be post meta data, schedules would be an attachment, and you could use custom taxonomies to further group/filter routes.