I created two 2010 workflows using SPD 2013. One sends emails and the other changes permissions and they both operate on multiple people who are specified in a multi-select person field in SharePoint. Turns out, the way you specify the return values is different for each scenario (but not how you think).
Send Email Workflow Action … return values from multi-select as “Email Addresses, Semicolon Delimited”. Works fine for this action.
Replace permissions on an item … for this action, returning a multi-select as “Email Addresses, Semicolon Delimited” didn’t work. I changed the return value to “Login Names, Semicolon Delimited” and it appeared to work. (BTW … none of this is documented in the product help or in online documentation for the product, so it’s trial and error all the way). I thought this made sense as setting permissions may be more related to login names than email addresses … BUT NOT SO FAST …
… it only worked when a just one single person was entered into the form field. When multiple persons are entered into a multi-select field, the workflow would crash. What is up?
After some further Googling, and trying various suggestions that didn’t work, I found that someone had gotten around this by setting the Return field as STRING! This suggestion worked! I’m sure there’s a reason, but it’s not very intuitive, to say the least. Not sure why it works, but it does.
Might be worth a try if you need to set permissions using a multi-select person field.