Hi,
don't give up :) I have exactly your setup at home, and I'm now connecting more sonoffs to it. Like said earlier, you need to figure out one thing at the time. First, use mosquitto_sub and mosquitto_pub to debug your server. They are clients for sending stuff, and receiving stuff from mosquitto. First verify manually that you can send and receive stuff from mosquitto:
If you have not set username and password to your mqtt, this is how you listen to everything in one terminal:
mosquitto_sub -h server_name_or_ip -p 1883 -t +/# -v
then from the other terminal you can try to send sonoff messages, and see if the _sub sees it:
mosquitto_pub -h server_name_or_ip -p 1883 -t cmnd/sonoff/power1 -m TOGGLE
this would give stuff like this on the subscriber terminal (_sub):
cmnd/sonoff/power1 TOGGLE
stat/sonoff/RESULT {"POWER1":"ON"}
stat/sonoff/POWER1 ON
cmnd/sonoff/power1 TOGGLE
stat/sonoff/RESULT {"POWER1":"OFF"}
stat/sonoff/POWER1 OFF
See, as I actually have a sonoff switch under that channel name, it actually responds too with the status.
Once you get that workin, it's time to debug node-red. For example I listen to status messages like this from the server in NR: "stat/sonoff/POWER", and send messages like this: "cmnd/sonoff/power" and message is either 1 or 0. I can send you screenshots once you get mqtt working. Have faith :)