When troubleshooting bugs, the best method is to remove unknowns until a minimal system can run and then go back and add pieces one as a time to deal with new problems alone instead of assembling everything at once and then trying to debug.
This is true for both hardware and software. If you build software up on an always working solid before adding the next piece, it will go easier and quicker.
A TFT screen is a complicated bit to add. It will require more code to put up images and capture touches. Depending on what TFT module you get it can be easier or harder to wire and use with text or graphics, the touchscreen be easy or a pita so be sure to get something that's gotten success in multiple projects so there's a few -working- examples to go from.
Buttons are usually less complicated, but may require more hand work assembling. OTOH you can buy cheap keypads that do wire up easy and there are articles showing how to interface PS2 keyboard/keypad/mouse with Arduino -- Walmart sold PS2 kb and mouse sets for $12 just 2 years ago and still might.
Neither way is insurmountable but I'd expect the TFT to take longer unless you get really good help with it.
Yes, hard choice.
Keep the project modular and you could go one way then replace with another later on.
I just want you to take care and get good results, this started out as a lot for a beginner to tackle.
As for mapping buttons, you have control over that. Your Arduino reads button or TFT input and matches each input char with a correct output char or string and send that HID or Serial to the Switch. It is only some code you write that decides what button makes what control signal, you have loads of freedom there and yes one button could send whole series of commands and/or change what the button does according to whatever you choose to make it so.