let me know what you think.
That looks OK, it's the same relay contact configuration as I was trying to describe.
A lot of PICs have an interrupt-on-change feature, where you can configure inputs to cause an interrupt if the pin state changes - ie. with a button press.
That means the CPU can be in its lowest power mode and "wake up" when a key is pressed, rather than having to scan the keys all the time.
I'd suggest a PIC16f18323 or 16F18446. Those are 14 pin and 20 pin respectively.
You need five pins to connect eg. a PICKIT programmer / debugging tool to the circuit; power, ground, reset and two specific data pins. That leaves you nine or fifteen i/o pins.
If you got it working with a 18323 and you need no more than six I/Os, you could reconfigure the pins if the program and use a 18313 for the final device - those are eight pin! Not enough for in circuit debugging if more than three I/Os are used, but if it's working fine it does not matter.
You would need transistors to drive the relay coils, either small MOSFETs or bipolar ones, with turn off resistors and for bipolar, base resistors. Plus flywheel diodes across the relay coils.
Other than that, just decoupling capacitors and not much else.