I found that it was cheapest and most convenient to bring chunks of change back to the UK from the middle east in cash.
You have to declare it at Customs if the amount is > EUR 10k but the process is painless. Just put it in an ordinary bag and no other passengers will ever know.
If you can get better rates at UK exchanges than Canadian ones you could always bring it all in CAD and then convert into GBP when you arrive.