Three controllers I've been using work to different degrees:
Korg nanoKontrol v1 - CC works fine, but no program change function and setting a button to be "Momentary" requires an on and off value which can result in a double value being sent out depending on how you are trying to use it.
Behringer X-Touch Mini - all works fine, program change functions work well but the Inc/+1 and Dec/-1 are mapped oddly by the editor software to be 1, 2, 3, 4, 5 etc on Inc but 127, 126, 125, 124 on Dec. Currently no way to change this.
Evolution X-Session U17 (not pro) - CC works fine, program change function works well with the Inc/Dec function behaving in a more logical up and down fashion than the Behringer. Ancient controller editor software (Enigma) does not appear to work with any of the various PC's and Mac's I have laying around but easy enough to set up using the on board controls.