Further to your note in message 11873 above, I suspect that you're saying that there was in fact never anything wrong or unusual with the midi data in this file, and the Bank Select data you were referring to was not in fact there, you were treating it as implied.
I would suggest that the correct way of looking at it is that the normal method to select a 'program' is to make a Program Change instruction alone, however, if the required program is in a Bank other than the default bank then and only then you need to make a Bank Select and then make the PC (Program Change) command. Regardless of being in GM, GS or XG the usual default bank will be the GM bank. Some devices may have special modes where they may have a different default bank - my Korg NS5r can be set into Korg 05r or w mode, my Yamaha can be set into TG300 or C/M (in the latter it emulates the Roland MT32 and related devices) modes. These have to be selected via buttons on the front panel, I don't think they can be done within a playing midi file.
I have a Roland LAPC-I card, this card is a Roland MT32 (or CL32) tone unit on a card. This system supports 8 channels only, Ch 2 thru 9, and Ch 10 here is EXPLICITLY drums/percussion. These devices are not GM, although you can load user sounds to make them temporarily pretty much GM compatible. But Ch 10 is drums ONLY, and drums cannot be used on any other channel. There may be some other devices that have similar limitations. But fairly old devices? All more modern devices, that will support 16 (or more) channels, will have channels that can set to any program via PC command, and a Program can be either a specific instrument, or a percussion set, on any available channel.