I have had similar experiences with a 1996 Saab 900 in the past. Generally there are two things that go wrong. The first is the expansion valve can be intermittantly faulty and actually shut off most of the refrigerant flow to the evaportator. Next is the a/c compressor contol which mounts to the evaporator can fail. I know there is an updated part that has a digital signal which is more accurate. The fact the issue is intermittant is a little hard to directly diagnose. The best way would be to duplicate the issue with pressure gauges attached.
Since it works slightly better on the highway, the issue could be related to an aux fan relay or fan not working properly.
I know it is a bear to isolate since it is intermittant. The car I was working on luckily failed when I had pressure gauges and I was able to duplicate the issue.
If it were me I would make sure the fans are fully operational and then replace the expansion valve, that is if they can't make it duplicate in the shop.