I make up songs on Cubase and use Ableton to play them. That way I can vary the arrangement. I use a Roland SC-8850 for sounds.
I figured out a way to put MIDI Program Changes in the middle of a clip, as many as you want, using MidiPipe. I use CC# 044 instead of a Program Change in my sequences - Ableton will recognize that. CC# 044 is, to my knowledge, an unclaimed CC. Then I use MidiPipe to change the CC# 044 that to a Program Change.

here's the tools:
1. Midi In - I use MidiPipe input 1 and route Ableton tracks to that
2. Message Filter - lets only CC's thru
3. Message Convertor - changes CC# 44 to a Note Off message
4. Message Filter - lets only note messages thru
5. Velocity Modifier - needed since the first program on a Roland is 1, not zero
6. Message Convertor - changes note off messages to program change messages - you need to check the "exchange data bytes" box at the bottom
7. Midi Out - I send it to my Roland SC-8850
There is a trick in the above that is the main one in MidiPipe: change a CC message into a note and then you can tweak that note and then turn it back into a CC message. By that method you can program just about anything to do anything regardless of what MIDI app you are using.