I've been having the same problem.
I'm sending MIDI commands from an iPad in the ForScore app.
The scenario I have is that I am using a Rig in a Performance Slot as my Clean sound and sometimes I want the MOD slot active on this Rig, and sometimes I don't.
In the iPad I have it set up to send a Program Change to select the Performance/Slot, followed by a CC command to either turn the MOD slot on or off.
This keeps things simple in that I didn't need to duplicate the Rig and have one Slot with MOD on and one with MOD off. It means that any tweaks I make to the Clean Rig will be reflected for both Clean sounds with and without the MOD slot active. i.e. a bit like having an amp and a chorus pedal.
I have noticed that occasionally (1 in 30 changes maybe) the Kemper appears to show everything on screen correctly but that the sound that is produced does not match. i.e. I get a crunch sound instead of clean.
I think, as suggested in the previous posts, the Kemper gets confused if it receives a Program change followed by a CC command in quick succession. I might see if I can add a delay between the Program change and the CC command to see if that helps. I don't really see why I should have to do this though. Surely the Kemper should be able to buffer any MIDI CC commands and process them after the Program change has finished?