Something like this is a project I've been "back-burner-ing" for a while now; in my case I plan to control multiple relays to activate lights and other accessories for my VehiCROSS - but anyhow...
The way I plan to approach it is to not have a built-in screen, but to instead use my smartphone. Why? Because it already does everything I would need it to do - all I would need is to write or modify some kind of existing interface software for it - and there are plenty out there for Android in Java. Even if I didn't use Java, I could write the code in one of a couple different versions of BASIC I have on my phone as well (both can be easily "wrapped" to make the app standalone, if needed or wanted).
Further, on my phone I also have Torque, plus a dashcam program, plus google maps, plus it is easy enough to get a wifi backup camera...
So after thinking it over, I felt that the phone was the best way to go - and I would urge you to think about this possibility as well. Furthermore, I can take the phone with me - and use it as a "remote control" to control the accessories if I wanted to.
As for what I plan to use - well, I've considered a variety of possibilities - but the ones on the top of my list are wifi or bluetooth.
For wifi, an ESP8266 interfaced to the Arduino could be used, and the controller on the ESP could be set to serve up a web page with the controls (so no app even needed!). You could also implement a simple REST API to control things using an app of some sort. It is even possible (with the right hardware - basically an SPI shift register would work) to have the ESP control the relay board directly (and eliminate the Arduino part). I recommend the ESP8266 over other things like a wifi shield or such because they are very cheap, and are now well documented and supported. Just something to look into.
Bluetooth could work in a similar manner - just use a bluetooth module instead of an ESP8266 - although you would need to interface the module to an Arduino or some other microcontroller.
It's also possible to find a device out there called an "ESP8266 Wifi Relay Module":
The guy (hbouzas) also sells it on Ebay. It basically combines an ESP8266 module with a relay driver IC (IIRC, it's a shift register) - and the relay coils are hooked up via screw terminals. Eight relays are supported. Everything is right there for you, and (I think - you'd have to check the specs of the driver IC vs the specs of the relays) you can directly drive Bosch-style automotive relays.
The whole thing looks to be fairly easy to use and well documented; it may even be open-source, if I recall. Even if it isn't, if you can understand the ESP8266 and read the schematic (or reverse engineer the board) - you could easily write your own firmware for it (in any number of languages - python, lua, or c++). The guy mentions that he can write custom firmware for you as well (likely for a price, tho).
Otherwise - going the way you're planning sounds reasonable - though I wouldn't go down the Pi/beaglebone, etc route - unless you think you'll need the extra power (like I said - this is why I decided to go with my smartphone - it already has all the extras I'd want or need, plus more that I would be a pain to add myself - like GPS and mapping). Your biggest issue might be space for the code, if you stick with a regular Arduino; 30k or so isn't much once you add on a gui and such - its doable, though, if you write efficient code. As far as pins are concerned, look into using SPI or similar interfaces, or serial modules for the LCD, or using 4 bit vs 8 bit mode (if you are using a parallel interface on the LCD and it supports lower modes like that). There's ways to use a single analog input to read multiple buttons (provided only one button at a time is pressed). If you need more pins or room for code, there's always a Mega2560.
Hope this helps - or at least gives you some ideas...