In GeoDirectory, each listing has one owner. The owner and site administrators can edit the listing from the frontend, and nobody else can. You do not need a special user role for this: create the user, then make them the owner of the listing. One account can own as many listings as you like.
- Create the user at Users > Add New, or ask them to register on your site.
- Go to Places > All Places (or your other post type) and edit the listing.
- In the Place Owner box, search for the user and select them.
- Click Update.
Repeat this for each listing. To give one person all of them, select the same user every time. How to Change the Owner of a Listing? has screenshots of the owner box.
When the owner is logged in and views their listing, the GD > Author Actions block on the details page shows an Edit link. It opens the listing in the frontend add listing form, so owners do not need access to wp-admin.
Ownership only covers listings. Ordinary WordPress pages, such as a page that shows a list of all your listings, can still only be edited by users with the right WordPress role. How can my users edit or delete their listings? explains the frontend side in more detail.