Mainstage playing a semitone too high
I have an odd issue with a combination of Mainstage (3.3.2) and an Arturia Keylab 88. It is playing notes a semitone too high, even when the notes are played on the Roli that I have as a second controller on some patches.
I have two MacBook Pros and two main keyboards - one older rig I use as a 'touring rig' and a newer set up for home use. I sometimes mix and match the keyboards with the mac. Combining the older MBP (2011 running El Capitan) with the newer keyboard (the keylab 88) the notes are transposed a semitone up. If I play a middle-C on the keyboard the display on mainstage plays the correct note, the midi info says middle-C but the sound comes out as C#. I've checked the transpose settings on the Keylab and they're not changed. I've checked the mapping of the pitchbend wheel and it's fine. As I say, the notes played on the Roli also come out high. When these keyboards are used on a my newer MBP (2019, Catalina) everything's fine. With my older keyboard (a generic 88 key weighted usb stage piano) everything works fine on both MBPs.
I've tried the Arturia on the older Mac with GarageBand and it plays the correct notes.
So to me this is a mystery. The Keylab is sending the correct notes. The Mac receives the correct notes. For some reason Mainstage plays them wrong although it clearly knows what it should be playing as the graphics match but the sound doesn't.
It's a very infuriating problem. I know that the usual answer is to upgrade everything to the latest versions etc, but I don't think I can have Catalina on my old Mac, and I don't seem to be able to go to Mainstage 3.4 either. Any suggestions?
MacBook Pro 13″, OS X 10.11