Capot has it spot on.
Take BA to the small claims court and get them to explain to the judge why having taken the money they then cancel a flight, shift poor passenger to another airline, and wash their hands of all responsibility.
One suspects the judge would tell BA to get their cheque book out and stop wasting his time.
Unfair Terms in Consumer Contract Regulations apply to airline/passenger contracts. Airline employees need to know this, obviously not taught in groundschool. Airline terms and conditions are a joke and they will bully you into thinking you are somehow bound by them when you quite often aren't.