Okay, so I checked all of my wiring loom, each button etc. to make sure no shorts (can happen if the two spade connectors at the back of the button get pushed together), or broken wires, all seemed okay.
Then I down-graded to version 4.0.1 and then back up to the latest version of Recalbox, and then something - not sure which bit has definitely improved matters as all buttons and the joystick now function correctly (at the moment at least). I don’t think it was entirely the software, as downgrading to version 4.0.1 didn’t immediately fix the issue, it seemed to happen after I’d rebooted the picade a couple of times, so maybe it was a corrupted config file (but it was a fresh install of recalbox, or maybe the arduino-alike on the picade board got a bit confused/didn’t initialise properly and crashed?
Anyhow, deffo worth checking there are no button shorts, or obvious wiring loom issues again, and if there don’t seem to be any, try re-installing recalbox I reckon as I suspect that’s what fixed it for me.
Hope this helps, sorry I can’t be more exact about the cause.