MAME continually updates itself whenever someone finds an improved ROMset or dump of an arcade game, so old MAME ROMs will not work with current MAME. You will need to look for a ROMset that is as close to the latest version of MAME that is possible. Try searching archive.org for current ROMs for pretty much everything. It's also best to look for "merged" ROMs, these are ROMs that include every single alternative version of a game (other regions, hacked versions, etc) so you won't have to figure out what the "main" one is. Some ROMs also depend on other ROMs to run, for example, Neo-Geo games need the neogeo.zip ROM. Some, like the Game & Watch ROMs, need an overlay to make sense of what's going on. And then there's the games that need a CHD, which is a separate file that goes in a directory with the same base name of the ROM (e.g. Killer Instinct needs kinst.zip as the main ROM, a subdirectory in your ROM directory called kinst, and a file kinst.chd that goes in that directory) that represents a HDD or optical disk that holds the bulk of its data. It's a little confusing until you get your head wrapped around it.
If you use RetroArch, it's better to use Final Burn Neo for the bulk of old games, because that's what it recommends and the extensive number of games MAME supports is just a mess when a ton of them are unplayable things like the display (only) for a pinball or mechanical game, and just simply games that won't work at all. FBNeo pares this down to things that at least work, and if you want to run games FBNeo doesn't support and MAME does, you can add them one at a time for MAME and just run those.
There are so many alternative dumps/rips of games for other consoles that it's impossible for a game list to recognize them all, which is why you only see a few of all of the ROMs you have. RetroArch has two ways to select games that aren't "standard": either add them to a playlist manually, or directly browse to the ROM location on your system and load it (which is why it's a good idea to organize your filesystem by system).
RetroArch also detects and preconfigures your controller in a way that every single system and every single game uses a standard layout, and you can customize this for either the entire emulator or just a single game (e.g. I like to use shoulder buttons for middle attacks on SF-like fighting games when the shoulder buttons usually default to the strongest attacks, so I have to set up a game-specific setting for it – you'll still have to do that for each game you want to configure but at least it will remember it; meanwhile, I don't like the order of buttons RA uses for a 6-button Genesis/MegaDrive controller, so I do a core setting for that).
Yeah, I really like RA. I used to not because it does have a bit of a learning curve, and it used to be a lot buggier and problematic. There are a few systems where you really want to use external emulation, and PS2 is one of those, unfortunately, so you might have issues there if you want it all combined on a single interface. The PS2 emulator core in RA isn't nearly as good as pcsx2, but it'll run a few things. Dolphin (the Gamecube and Wii emulator) also has a lot more options and specific configurations for how especially Wii does things that make the standalone more flexible than its RA core unless you're just running some simple games in it. RA isn't perfect and if you need some of these things in a launcher, it might be an issue. You can, however, run games via a commandline like it shows here and it might be possible to run things in a separate frontend.
https://docs.libretro.com/guides/cli-intro/