Even if your booking is not refundable, if you email the hotel directly and explain that you want to get the Avios, then ask if you book a second room for exactly the same nights if they will cancel the first without penalty, they should be happy to do this. (I own a hotel and I certainly would agree to this). Obviously this relies on you being able to get the same prices if you book using the BA link as you did before.