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.