Is there a better more efficient way to essentially tell each led what to do without having to address all the LEDs for every function or a way to create a function that gives a specific output? (e.g Leds 1-20 Red, 40-60 White)
Developing functions is the way to go. In any given function, you ONLY diddle with the LEDs that need diddling with.
The second problem I have is that I would like an override function for the likes of shows where I can essentially tell the Strips what to do on the fly.
Why is that a problem? What the heck does "on the fly" mean? Where are you mounting the strips? I thought you said they were on a car, not a fly.
How difficult would this be?
Trivial. Listen to the serial port if a switch (NOT a button; buttons keep shirts from flapping) OR listen to the serial port for some other reason. Doesn't matter which makes you listen to the serial port.
I was thinking of controlling the RGB's with the Arduino (through MOSFETs) at the same time as bitbanging the WS2812B but im fairly sure this would throw the timing out of whack
Why aren't you using one of the WS2812B libraries, instead of bit-banging? PWM should not affect your ham-fisted bit-banging timing, since PWM is hardware-driven.