Correct board rotation can be detected by GCS using accel data and known vehicle attitude ( 30 degree pitch forward ).
For the reference only, here is the part of the code which does it in the "other firmware":
The implementation on Configuration/Attitude/Calibration page could look something like this
And when clicked on "Start" could display following text:
"Place in approximately 30 degree pitch forward (nose down) position. Please take care not to roll the vehicle."
It should start collecting accel samples on "Save Position" and then after collecting NUM_SENSOR_UPDATES_YAW_ORIENTATION of them, do the magic math and save calculated AttitudeSettings.BoardRotation.Yaw value.