Here's my idea for you.
I've created a generic 328-based arduino symbol with power inputs & serial lines on the left, and the balance of the I/O lines on the right. I started numbering the pins with D0 as pin 1 and working around the board. I left the FTDI type lines in there because they are there on Prominis, which I use a lot.
I also created a symbol for a TI TPIC6B595 shift register.
This part is 2 stage - data is shifted in using SerIn and SerClk, then loaded in parallel to the output drivers with LoadClk.
Clear/ clears (sets to 0) the first stage registers when low.
OE/ lets the parallel stage drive the output drivers when low.
The output drivers are N-Type Mosfets. They can switch up to 50V, so would be good in a car, and up to 150mA.
You would have them connect the 'bottom' of LEDs to ground as I have shown. (Boffin1 in South Africa introduced these to me).
You could also put a pullup resistor on them to force a high output when not driven.
Or you could use other shift registers and drive higher power capable Mosfets such as International Rectifier IRF3707Z.
I showed the Arduino as having the same serial data shifted into the first stage of every shift register. You would then use Load clock to load the one set of outputs you wanted to drive.
Alternately, you could use longer shift out sequences and let the data ripple thru all the chips, then just have 1 Loadclock to all the chips to change them all at the same time, leaving you 5 more pins to do other stuff with.
Depending on how you set up your software, one way or the other may have its advantages;
speed of writing to a specific part for example, maybe ease if wiring if the chips are to be spread out with the lights being driven.
Your LCD may require specific I/O pins to be used, I didn't see a datasheet.
I did this up kind of quick, I would normally make the lines straighter & stuff. But this will give you and idea on how to proceed.
Look for stuff like this vellemanusa.com, ecs1/2, to build it up on.