Elizabeth,Finale will not change the program and channel numbers automatically and it should not. If it did, you would wind up with an entirely different set of problems.
If I understand your problem correctly, what you should is as follows:
1. Set your intial instrument sounds (patches) and channels in the instrument window. Remember that each sound (trumpet, strings, flute, etc) has to be assigned its own channel, although you could have one sound assigned to more than one channel if you wish.
2. Again using the instrument window, assign each sound to the various staves in your score.
3. If you want to change sounds on a single staff, (for example, flute to piccolo) you can use the expression tool to do this. Create an expression that says sometning like "to piccolo" and in the playback controls next to "type" use either the channel or patch to create the change. If you have already setup a piccolo sound (step 1) a "channel" change will do the trick. If you have not, use the "patch" type to make the switch. Remember to create a "to flute" expression to return the playback to the flute sound. This can be done with "Staff Style" or the MIDI Tool also. Check the documentation for more info.
4. Make sure that "send patches before play" is checked at the bottom of the instrument list window.
As a general rule, each channel can have only one sound (patch) and it will stay there until you tell it to move. Also, if you change the sound for one channel, it will remain on that sound until you tell it do otherwise.
I hope that I have not added to your confusion. Feel free to email me or post here if you are still having problems. Good luck.
Jim Coull