On BA you can pay for a specific seat once you have made your booking. The costs vary depending on which cabin you are travelling in but I seem to recall it being something like £60 for Club (Business) Class (and £80 if you want to be assured of an upper deck seat.....)
If you were shifted out of that carefully chosen and paid for seat for operational reasons you should get a refund (and some miles)... unless of course you were actually moved to a higher class cabin. My hubby had paid for a bulkhead seat in WT+ on our recent holiday flight - and was upgraded to Club at Check-in.... he won't be asking for his £25 to be refunded!