Sorry, I wasn't sure how well versed you were in BIAB (and it was late) so I just had to put that other suggestion out first.
You are right that the Mac's handling of MIDI is kind of different that how Windows does things (some would say strange).
Plus (IMHO) BIAB has it's own little quirks from years of change, while trying to maintain backward compatibility.
Having said that here is what I have set up that works for me :
These first 2 settings may seem a little redundant, but as I said BIAB is the way it is because of the way it was in the past, having a lot to do with the transition from the classic MacOS to OSX.
First check your MIDI Driver, and set it up to Core MIDI
Then set Apple DLS Synth in your "Select MIDI Ports" window (don't set it in the MIDI driver window, set it here). This is also where you would select if you want the Thru channel to go somewhere else, other than the DLS Synth.
Then take a look in this window in the Options menu "MIDI Settings" and make sure you have the channels for each track are what you think they should be, also make sure there is a default patch # selected for each track. If it's blank you get either silence or piano GM patch #1 (can't remember).
And finally another place where you can make sure that the default patches for each track are what you want them to be. These are the patches that show up in the MIDI patch selection menu. This is under Options> Patch Maps> Favorites.
I know the first 2 screenshots I posted seem a little redundant and strange, but having it set up like this has worked well for me.
I do vaguely remember having issues with selecting patches with a setting of "Built-in DLS Synth" in the MIDI driver dialog window, but that was a long time ago.
Hopefully this helps you sort it out, otherwise there may be something else happening on your system and an email to PG support may be in order.
Good luck !
- Jay