This is not about menus, this is not about ISO files.
The plex player app can choose to build a menu out of chapters (see screenshot in post #9), but it does not have to.
The simplest way to support chapters is a 'Jump Forward/Backward' button.
Chapter markers are text files, basically just a list of timecodes. They are muxed into the header of mkv and mp4 files (and probably other media containers too).
When you say 'play chapter 3', all the player does is jump to the playtime position that is assigned to chapter 3 and play from there on. Simple as that.
Displaying the name of a chapter is simple: it is just text which the author of the chapter information can (not must) include. The plex client app determines if and how it is shown.
The thumbnails for the chapters (if they are implemented) are supposed to be generated by plex upon adding the movie to the library.
(The code for this is probably already there. I assume the mediaindex program code or the code for generating the 3 standard screenshots can be adapted easily.)
Once again, the plex client app determines if and how the chapter thumbnails are presented to the user.
The presentation part could even be completely dependent on the skin of the plex client app.
Look at the screenshot in post #17, how chapter markers can be implemented in a desktop video player app. (MPC-HC in this case).
The navigation menu is open to show how stacked chapters can look in the simplest implementation.
But there are also these little vertical lines in the scrobbler bar under the video window. These are indications, where on the time line the chapter markers are situated.