Same symptoms recently with my 98 Forester, 120k.
Did the whole minor repair route... Coolant level, Tstat, then had'em test for CO in the coolant>>negative, did a radiator hole repair (replacement$$$), while in there did the timing belt & waterpump. Fine for 2 days, then again no heat.
Finally took it to Subaru dealer, who did a true diagnostic, HG was fine, had a crack in the block, and a lot of bearing rattle way down deep. Still don't know what caused it all, where that crack originated, (first year they made the Forester?) but it was ultimately a full block replacement.
I'm not unhappy... the car cost me $8000 2 years ago, I've put 50k on it, and now I have a great new $4000 engine, it should carry me for another 120k or more.
It was just lousy timing on when I had to spend that $4k.
Hope your solution is less costly.
-doug