After even more head bashing this is what I have learned:
(It seems my posting the sketch is not appreciated, so I won't.)
I shall put the names of the functions in capitols only for effect.
I put a couple of lines in the SETUP() to turn the LED 5 on/off and it works.
That is on Pin 12.
SecondLED is pin 1 - just to let you know now.
Then it goes into the LOOP()
And from there straight into the SOLENOID() function.
On loading the LED 5 blinked. So all was good.
I then copied the lines from the SETUP() to the SOLENOID() function, but put it after the LED_CONTROL(1) call.
This just turns on another LED indicating the loop is running.
Uploaded it and LED 5 blinked only once. The "main" LED turned on indicating the loop was running and the other LEDs blinked as per normal, but 5 didn't.
For what ever reason, I copied the lines and put them BEFORE the LED_CONTROL(1) call and uploaded.
Lo and behold, LED 5 blinked TWICE when the sketch was loaded.
Then I copied them again and put them AFTER the LED_CONTROL(1) call.
LED 5 still only blinked twice, not three times.
The only "difference was the positioning of the lines before the LED_CONTROL(1) call.
So, I remarked out that line.
Now excluding the blinking at the start, LED 5 works as per the others.
So, to me: LED_CONTROL(1) is causing the problem.
All that does is get the (1) which is sent, and depending if it is 1 or 0, turns the LED on or off.
So to "test" what is going on, I simply put
digitalWrite(SecondLED,HIGH);
where the LED_CONTROL(1) call was.
LED 5 doesn't work.
How would doing a "digitalWrite(1,HIGH);" prevent a "digitalWrite(12,HIGH);" from working?