okay....they have offered £50. Ive refused it.
was i right or wrong? 
The way I see it is this:
Firstly, as far as I am aware it is not actually illegal to sell food that is past its sell-by or best-before date. The restrictions regrading expiry dates are that (a) all packed food items must have an expiry date, and (b) that once set the expiry date may not be changed by the store or by the manufacturer, i.e. if an item was not sold you can not replace the sell-by date or re-pack it to show a later date, even if the product is still good.
And, the expiry date itself is entirely down to the manufacturer, i.e. if they want to label fresh milk with a 3 months expiry date then that's their problem, and there is nothing to stop a shop from stocking items past their expiry date. It is a simple case of buyers beware.
If, on the other hand, the food you bought is found to be contaminated in any way, then this is a matter for the Food Standards Agency. But this is regardless of whether it is past its expiry date or not. So in this case you should keep in mind that any food items, even dairy products, may not actually be dangerous for human consumption if it goes past it sell by date. It may be stale or tasteless etc, but not necessarily dangerous.
Secondly, you are protected from another direction and this is because this was a remote sale. When buying goods without being able to inspect them before purchase, i.e. by mail order, over the phone, or online, you have the right to give it back for full refund within a reasonable period of time (which is not specified but generally accepted as 7 days) without having to give a reason.
So I think that what is actually driving Tesco in this case is the fear of negative publicity, and not any legal ramifications, especially as you have not actually consumed the product or got harmed by it. But there is a limit for what they would do... so I would take the £50 and run.
Now I am not a lawyer so don't take my word on it, but as said this is how I understand the situation.