The limit on your ticket was only 20Kgs - even for Cathay. Your MPO status gives you 15Kgs extra on CX. BA didn't recognize that your Cathay status would give you extra bagage allowance on CX, and therefore charged you the excess on the entire ticket. That's where the problem lies... it's fine if Oneworld carriers don't have reciprocal luggage arrangements - it encourages the frequent flyers to stick to their home airline. What is ridiculous is that you are being charged when flying your home airline when your status entitles you to the benefits. For example when you fly from HK to EDI - you are entitled to 35Kgs, but when returning as you check in with the partner carrier - BA only allow you 20Kgs.
I would be furious and complain bitterly to CX. Kick up a massive fuss. I wonder if Cathay actually collect the baggage fee or does it all go to BA?