Television channels (or, more strictly, groups of channels, called 'multiplexes') are transmitted on different frequencies. In an ideal world you should have a different aerial for each frequency (meaning that your roof would be covered in aerials) because the elements of each aerial need to be a precise length to 'resonate' with the incoming frequency.
Clearly that's impractical, so we each use a single aerial which is only a 'rough match' to the frequencies its intended to receive. That means that it will be better at receiving some frequencies than others. Your aerial is a 'poor match' to the BBC HD frequency, so you can receive the channel when there are good reception conditions but you lose it when reception conditions are poor (due to changes in atmospheric pressure, the 11-year-sunspot cycle [which is currently peaking], individual solar flares, interference from electric devices, such as TVs, inkjet printers & so on).
To solve your problem you simply need to improve the signal strength from your aerial. A booster will cost you around a tenner in most large supermarkets but this one (for about £18) from Maplin provides more 'gain':
http://www.maplin.co.uk/1-way-aerial-amplifier-223504