Sounds like you need to store the chosen patch setting.
On the midi Track Info panel, select the patch and then press the program button.
Usually you want to store at least once - mainly at position 0.
This stores the setting so that when the song is rewound, the default settings do not take over.
To put it another way, you are storing midi automation values.
These settings can also be viewed edited on the midi controller graphs in the pianoroll window.
An alternative is to set the 'song type' to NO song type instead of GM for example.
Then it should not overwrite your selection even if you did not store it.
And try the SVN release_2_0 branch - I just fixed some midi stuff in there, including some
synth settings which were not restored.
About the instrument files: Feel free to send your Yamaha file.
Be sure to look at examples, especially in your case our XG .IDF file, and view it in our instrument editor.
We support drum controllers etc.
Good luck. Tim.