You need to use a join table for the checkboxes and identify the user along with the record ID
I've done this a few times and currently have this set up in a WD project.
See the attachment. I threw together a sample.
The button bar at the top selects all the records in a group. I'm using ExecuteSQL. Are you familiar with that? If not it isn't too difficult to pick up the basics. Check out this blog post: https://filemakerhacks.com/2012/10/19/the-missing-fm-12-executesql-reference/
The button bar does its thing and puts all of the IDs into a global field (which is unique per user per session, so other users won't see the checked people).
In fact, the checks are not even check boxes; they're pictures of an unchecked and checked box.
Each row of the portal has an invisible button that either adds the row's ID to the list or removes it, the latter using the Substitute function.
Walk through the scripts. It is pretty simple once you wrap your head around it.
EDIT: I've added extra steps to do the emailing. Once you get the list of IDs, you Go to the related records from the ID_PeopleSelected field , loop through to get their emails, then send the email.
Check out the "Email" script.
Wow! Many thanks for your effort in answering this question.
A very elegant solution. I'll work on this today.