Propane injection software compiles, uploads, doesn't work
I can see two things wrong with your code at first glance.  First is the kind of interrupt you're using:

attachInterrupt(digitalPinToInterrupt(interruptPin), shot, LOW);


A LOW interrupt keeps triggering over and over again all the time the input is low.  It's a special interrupt type that is seldom used for anything except waking up the MCU or handling external peripherals with persistent interrupt indication.  Instead you should be using FALLING which will trigger once and once only when the input transitions from HIGH to LOW.

attachInterrupt(digitalPinToInterrupt(interruptPin), shot, FALLING);


Secondly you have two variables that seem to be intended to do the same thing - store the delay time for your output pulse.  And that's caused confusion:

injValue = (tpsValue + mpValue + tuneValue) * 4; // add the three sensors together and assign the value to inj//


... and then later ...

delayMicroseconds(inj); //delay the calculated value  in microseconds//


In your comments you reference the second variable, but the code uses the first one. Change that so it uses just one (volatile) variable:

inj = (tpsValue + mpValue + tuneValue) * 4; // add the three sensors together and assign the value to inj//


Alternatively, and perhaps much safer, is to assign the result of the calculation inside a critical section, in which case having two variables is useful:

injValue = (tpsValue + mpValue + tuneValue) * 4; // add the three sensors together and assign the value to inj//
noInterrupts();
inj = injValue;
interrupts();


This will prevent your interrupt triggering whilst the value is being calculated and placed into the inj variable which could result in the inj variable containing gibberish, which could cause your engine to explode.