I don't think it's an issue of relative file path, but rather an issue of 2.6 changing the name of the executable itself (from "BaldursGateIIEnhancedEdition" to "BaldursGate-macOS")
I changed Lines 2535 to 2538 from this:
ACTION_IF FILE_EXISTS ~BaldursGateIIEnhancedEdition.app/Contents/MacOS/BaldursGateIIEnhancedEdition~ BEGIN
OUTER_SPRINT exec ~./BaldursGateIIEnhancedEdition.app/Contents/MacOS/BaldursGateIIEnhancedEdition~
END ELSE ACTION_IF FILE_EXISTS ~../MacOS/BaldursGateIIEnhancedEdition~ BEGIN
OUTER_SPRINT exec ~../MacOS/BaldursGateIIEnhancedEdition~
to this, and it installed just perfectly:
ACTION_IF FILE_EXISTS ~BaldursGateIIEnhancedEdition.app/Contents/MacOS/BaldursGate-macOS~ BEGIN
OUTER_SPRINT exec ~./BaldursGateIIEnhancedEdition.app/Contents/MacOS/BaldursGate-macOS~
END ELSE ACTION_IF FILE_EXISTS ~../MacOS/BaldursGate-macOS~ BEGIN
OUTER_SPRINT exec ~../MacOS/BaldursGate-macOS~
Now that I have my Mac, I also verified with a backup of 2.5, and can confirm the aforementioned name change indeed. Why Beamdog wanted to change that I don't know.
I think if you want to make the installer compatible with both 2.5 and 2.6, you could either append my changed lines to the original lines, or do a ACTION_FOR_EACH?
Sorry, I probably should have reported my results earlier.