This is a versioning bug. The first of the following two lines is missing from the example shipped with 1.40:
BOOST_CLASS_VERSION(bus_schedule::trip_info, 2) // missing from example
// BOOST_CLASS_VERSION(bus_schedule, 2) // not necessary for example to work.
When the schedule is recreated, the driver is not copied to the bus_schedule as the field is contained in the nested struct.
When I replace the second macro with the first one, the example works.