I can second/third/fourth 123-reg. I've been using them for years and while you might be able to register a domain elsewhere for perhaps 50p to a quid a year less, they're a very reputable company, there's no hidden charges or "transfer fees" and you get full control of the domain name. Why anyone would go elsewhere is beyond me.
As regards your free .co.uk domain name, Matt, try transferring the domain name to another host without paying for it. There's no such thing as free on the internet! You'll pay for it one way or another!
As for hosting, spending less than £50 a year for web hosting is frugality at it's worst. If your site is just personal and you have no concerns that it about it going down unexpectedly (and it WILL), then by all means spend less than £50 a year on "Bob's Budget Web Hosting" but if you're using your website for a business, it makes absolutely no sense at all to get cheap hosting. Go for one of the reputable hosts, and there's plenty of them. I can give you a list of great web hosts who range in price.