seems to me it could be divertor valve sticking, or plate heat exchanger could be blocked, i recently went to a job with this problem and i removed the plate heat exchanger and soaked it in cilit bang over night and re-fit it the next day, and worked like a treat, customer said they havent had hot water like that for years and years, with little cost too.
hudds gas man, April 2009