Custom entity search and display

I think you’re over thinking things. I’d simply create a new Custom Post in the plugin. That will come with it’s own backend automatically.

You can then create the individual pages based on the Template Hierarchy for both the listings and individual pages.

For any additional fields you need, you can either set the meta fields to show on the backend or add them via a plugin such as Advanced Custom Fields

Amend wp-query when searching to do queries on your metadata.

That should be enough to get you going.

I personally don’t like the way WordPress does things, so I’m not sure exactly how much separation you will be able to achieve. But a good rule of thumb I find is to try and use the built in functions as much as possible, rather than building your own solution.