Arduino UNO and a MIDI Shield

Regarding changing from playing an Instrument Patch to a Drum Patch, you could program SW1 to change the MIDI Channel from 1 to 7 (add 6 to channel), this way you don't need to send any program Change.

The default MIDI channel for Drums is 7, so you could have pre-configure your sounds source (Module or Keyboard) in Channel 1 with an Organ and Channel 7 with Drums, and SW1 will change the NOTE ON/OFF channel from 1 to 7, like this:

Channel 1 Note On: hex 90 or dec 144
Channel 7 Note On: hex 96 or dec 150

So just add 6 to the variable channel when SW1 is Pushed

void handleNoteOn(byte channel, byte pitch, byte velocity)
{
// Note that a LOW value means the button was pushed.
if ( digitalRead( 2 ) == LOW )
{
// Send Note to channel 7 (Drums)
MIDI.sendNoteOn( pitch, velocity, channel + 6 );
}
else
{
// Send Note normally to channel 1.
MIDI.sendNoteOn( pitch, velocity, channel );

}

SAME FOR NOTE OFF