Andrew, I’m afraid you’ll probably have to fork out for a cab yourself. I had a similar situation with BA where they moved the flight to Linate from Malapensa. I even had my non-refundable bus ticket paid for.
The most you’ll get I think is a free change of date/flight or full refund for a cancellation. I don’t know about timings but you could then perhaps think of rebooking with KLM, AF or Swiss who all fly to BCN though it will add to the traveling time.