I am not at all familiar with the 1.6, so this is generic advice. The two symptoms you describe don't necessarily 'fit' together to point to a single problem.
You were right to check the fan. A car that heats up at low road speed and cools down at highway speed most likely has a fan problem. If the water in the radiator is hot, the fan should be pretty stiff. When it is cold, it should spin fairly freely. Examine the fan clutch to see if it appears to have lost its fluid (i.e. it looks oily). If so, replace it. You will need to make a tool to hold the fan pulley still while you loosen the fan. It is left-handed thread.
Do you have an electric fan as well? Do you have a temperature sensor screwed in to the side of your radiator? If so, pull the plug off the temperature sensor and with the key on, see if you can turn the fan on by shorting the outside wire to the brown ground wire in the plug. One outside wire should get you low fan speed and the other should get you high fan speed. If you can hear the relay click but the fan does not come on, it could be the relay contacts, the resistor on the fan, or the fan. Relay is first suspect. Electric fan is expensive so hope it is not that. If the mechanical fan works, you should be able to live without the electric fan.
A heater that blows warm only when the car is moving indicates that it is getting water though the heater core only when the water pump is spinning fast. This could mean you are low on water, or someone has plugged the heater core up with bad water deposits or radiator stop-leak. Another possibility, which might also answer the first problem, is that the impellers on the water pump have rusted away, or, if they are plastic, gotten brittle and broken off. How many years/km on that water pump? Water pumps generally last about 10 years or 200k km whichever comes first. Some plastic impeller pumps don't last that long.