Unfortunately you're also up against the limitation of the last-century backend GDS technology as well as the general incompetence of airline IT. And BA is especially incompetent.
Amadeus, the GDS that BA uses states....
Amadeus allows up to 57 characters, including last name, first name or initial and title, Passenger Type Code PTC, date of birth, and identification code ID or CR.
You probably need to find a pragmatic abbreviation for your name(s) you use in bookings so that your name is recognisable against your passport or other travel document, yet is within the limits of technology limitations.