ich glaube das problem liegt ganz woanders:
der destination-parameter der zone, gibt an, wohin die daten GESENDET werden, wobei local dann die interne klangerzeugung ist und midi die externe...
wenn man dort midi einstellt, kannst du garkeinen sound mehr dafür festlegen (wenn du versuchst, das program zu ändern, kannst du hier nur nen midi-programchange zwischen den möglichen 127 "external programs" eingeben)
wenn du willst, dass ein externes signal intern verarbeitet wird, dann müsstest du das per midi-recv machen, da hast du recht - allerdings werden diese optionen soweit ich das sehe nicht ins setup gespeichert!
meine vermutung: wenn du dein setup erstellst, änderst du das program auf deiner zone. das wird vom midi-recv übernommen, weil jeder midi-kanal nur ein program zugewiesen haben kann
wenn du jetzt den zonenmodus änderst, geht diese information im setup verloren (dort ist jetzt der programchange auf die nummer, die dein programm hat, um zum externen klangerzeuger gesendet zu werden)
im midi-recv steht das program aber weiterhin drin und kann deshalb auch gespielt werden...
rufst du nun ein anderes setup auf, ändert sich das program auf dieser zone zu dem, was im setup gespeichert ist - dabei wird auch im midi-recv das program geändert (nun würdest du den sound aus dem neuen setup per externe tastatur spielen, was ja auch richtig ist)
wenn du aber jetzt zurück zu deinem ersten setup wechselst, sendet er nur den gespeicherten programchange raus, wechselt aber dabei NICHT das interne progaram im midi-recv (denn darüber stehen im setup ja garkeine informationen mehr drin)
aus dem grunde spielst du dann den alten sonund, also den, der im vorherigen setup auf dieser zone lag (weil ja nichts geändert wurde) über die externe tastatur...
mein lösungsvorschlag: stelle die zone nicht auf "midi", sondern auf "local" und schalte diese zone einfach ab. nun erklingt beim spielen über die interne tastatur der pc der sound nicht, weil die zone ja off ist, wohingegen per midi trotzdem empfangen wird (dafür ist ja das midi-recv und nicht das setup zuständig)
der unterschied: bei "local" wird das programm im setup gespeichert, sodass du jedes mal wenn du das setup aufrufst, auch deinen orgelsound anwählst (und das beeinflusst eben auch den midi-recv)
ich habe das gerade mal hier ausprobiert (ja, ich habe nichts zu tun in der nacht
), hat funktioniert, ich hoffe es ist halbwegs verständlich und ich hab nicht wieder alle begriffe durcheinander geworfen