I think this could be solved in the controller.
Right now it appears to simply to do a max() of all of the zone demands to calculate the value it sends to the BDR91 or OT bridge. If, instead, it did an average I think this situation would be avoided.
When a new zone kicked in, wanting full heat the boiler would be turned up a bit, but not to maximum.