SUCCESS - it looks like I've fixed it. The problem was that I hadn't commented out the unused buttons in the "Input device" buttons section of retroarch.cfg. Before I updated RetroArch didn't care, now it obviously does.
So I rolled back, updated and then only made that change to the retroarch.cfg. Everything else still works as before, because I didn't need to reset EmulationStation or MAME cfg files.
In the end it was a simple fix, thanks to everyone for all their feedback which helped me find the solution. Hopefully this thread helps someone else down the track.