do all of the presets fit the pattern of "preset# = subpage# + 1"?
If so, perhaps MIDI.sendProgramChange (subpage+1, channel); // preset, channel
would suffice?
Last comment, at least until you reappear:
If you want more flexibility, since your page numbers seem to be a numeric sequence, you could use it as an array index; that would allow putting arbitrary preset numbers in for each subpage.
C
I haven't included code to make sure subPage is greater than -1, but since you didn't post all your code (which would show us your data-types), this may not be necessary.