It was just a data problem related to the way I deleted the duplicate TV1/TV3 channels, which causes an exception to occur mid way through GetListingsForTimePeriod(), leaving some of the channels not yet populated.. I've attached an updated database.