According to my current sketch, is the logic correct in terms of what I want it to do?
Well, no, because I don't see where buttonstarpressed is called.
void loop()
{
char key = kpd.getKey();
...
}
You don't use "key" there so why find out what it is?
I would expect you to test (eg. switch on) the value of key and call the appropriate function.