The stat is in the out, not the return so even if it's stuck you could find the bottom hose getting hot through conduction from the engine. Check it by taking it out of its housing and dropping it in a pan of hot water with a thermometer. Put the pan on the stove and heat it until the stat opens. If it doesn't, there's your problem!
You can check the fan thermoswitch the same way: put a multimeter on the terminals then drop it in a pan of water and see the resistance drop to 0 at the correct temperature as you heat the pan.
You can check the fan just by shorting the terminals on the thermoswitch
Then you can test the fan and thermoswitch together by running the engine whilst standing until the fan cuts in. Do the radiator and the top AND bottom hoses get hot? The fan should then cut in and out to hold temperature fairly stable, does this happen?
So far you have instructions for testing:
1) The temp gauges
2) The thermostat
3) The fan thermoswitch
4) The fan
If it's none of these things, we assume that the cooling system is specified well enough to do the job, so you must have a blockage/airlock?