There is no way to programmatically change the label of a custom control after the control has rendered for the first time on the ribbon. You can have two controls with different labels and configure them so that only one is enabled at any given time.