I had the same issue a few days ago. It turned out that I'd saved the preset while some parameters weren't one their min or max values.
So I'd engage the preset and it would be dirty, then I'd press the switch, and it would still be dirty but the light would go off, then pressing the switch again would activate the light while going to a clean setting.
I resolved it by making sure the footswitch parameters all matched their intended values for the dirty channel, while it was lit, then saving it again.