My outputs are not outputting any current at only two of my pinmodes but work fine on the others
I think the problem is not in the output pin (which you say works elsewhere) but in your calculations. I made a Minimal, Complete, and Verifiable example of the part of the code that does the calculations, testing every possible reading you might have got from analogRead(4) (mainly because I found the calculations code rather obscure). Here it is:

float salinity;
void setup()
  {
  Serial.begin(9600);
  }

void loop()
  {
  for (int analogS=0; analogS &lt; 1024; analogS++)
    {
    Serial.print ("analogS = ");
    Serial.print (analogS);
    salinity = 2.0955*pow(10,-19)*pow(analogS,5.8106)*100.000;
    Serial.print (", Salinity = ");
    Serial.print (salinity);
    float target= (salinity-(salinity-.1)*.60);
    float numer=((((target)*.08585-(salinity)*.08585)/(.1-(.1*.15+salinity*.85)))*60.0);
    float denom= ((.1));
    float valve= ((numer/denom)/10.00);
    Serial.print(",  valve = ");
    Serial.println(valve);
    }
   Serial.flush ();
   exit (1);
  }


Testing that reveals:

analogS = 0, Salinity = 0.00,  valve = 3.64
analogS = 1, Salinity = 0.00,  valve = 3.64
analogS = 2, Salinity = 0.00,  valve = 3.64
analogS = 3, Salinity = 0.00,  valve = 3.64
... some lines omitted ...
analogS = 1016, Salinity = 6.21,  valve = 3.64
analogS = 1017, Salinity = 6.25,  valve = 3.64
analogS = 1018, Salinity = 6.28,  valve = 3.64
analogS = 1019, Salinity = 6.32,  valve = 3.64
analogS = 1020, Salinity = 6.35,  valve = 3.64
analogS = 1021, Salinity = 6.39,  valve = 3.64
analogS = 1022, Salinity = 6.43,  valve = 3.64
analogS = 1023, Salinity = 6.46,  valve = 3.64


As you can see, valve is always 3.64, so you will be doing this:

    digitalWrite(6,HIGH);
    delay(3);
    digitalWrite(6,LOW);


In other words, port 6 will be HIGH for 3 milliseconds, probably too short a time for you to notice. Ditto for port 5.



Also this doesn't do what I suspect you think it does:

if(.096&lt;salinity&gt;.104) {
    delay(5000);
}


That will evaluate .096 &lt; salinity to be 0 or 1. Then it will evaluate:

0 &gt; 0.104
1 &gt; 0.104


This is not what you are intending, I think. Try:

if(salinity &lt; .096 || salinity &gt; .104) {
    delay(5000);
}


If that is what you mean, I can't be sure - maybe you mean the opposite:

if(salinity &gt; .096 &amp;&amp; salinity &lt; .104) {
    delay(5000);
}


If you write things out clearly, without trying to do shortcuts, it will be much more obvious what the test really is.