I would check if there is an Iberia option via Madrid. If they are unwilling or unable to do that, then rebook to Málaga and ping them for the extra travel costs. This may not be straightforward, indeed you may be specifically informed that any extra travel costs are for your account, but in reality you do have some consumer rights protection in this space. In principle if you have to stay another night then you can also try to bill BA for this, again BA may well resist this, but they can't fully avoid their Right to Care obligations.