50 quid for travel is some sort of limit for this, possibly, based on other posts I've seen. Maybe the hotel is similar.
That said, in my opinion BA should reimburse you fully. It still had a duty of care obligation and it elected not to make arrangements to provide this, so it seems reasonable that in that situation it loses the right to be able to exercise control over the costs. For last minute rooms when BA themselves acknowledged availability was a problem, the costs incurred do not look unnecessarily extravagant. Unfortunately I think you may struggle to get it.
Would travel insurance cover the shortfall?