I would have thought, EC 261/2004 aside, you have a contract with BA and it is their job to act with reasonable skill in upholding their end of the bargain per Consumer Rights Act. I am also not convinced the contract of carriage allows the carrier to cancel the ticket unilaterally. But please read it.
Did you pay on a UK-based credit card? Did the cash element exceed £100?