Cancelling a trip and replacing it with a new trip sounds like a use case for the TripProperties.trip_id field. For example, if you are cancelling/suppressing trip A and replacing it with trip B, you could have:
1) TripUpdate for trip A, schedule_relationship: CANCELLED
2) TripUpdate for trip A, schedule_relationship: DUPLICATED, TripProperties.trip_id: B
I'm not sure whether any consumers support this, but that's also the case if you added a new enum to ScheduleRelationship.
This also assumes that trip B is a replacement for trip A. If it's not a replacement for trip A, I'd be curious why you'd want to show it without explicitly showing that trip A isn't running.
-p