Program change message are relative to the selected preset bank. Issuing a bank change message will alter the interpretation of the program change message. To change the active bank, issue an MSB/LSB bank select message (CC#0, CC#32). The LSB isn't used, but you might as well send the pair.
Banks are divided as follows:
MSB 0 = factory presets 1 - 125.
MSB 1 = factory presets 126 - 250.
MSB 2 = user presets 1 -125.
MSB 3 = user presets 126 - 250.
For example, if you want to activate factory preset #136 do the following: send CC#0 with data 1; CC#32 with data 0; and PC with data 10.