Here's how I read your post:
Say you have three People records:
Jim Smith: Author, Editor
Jon Jones: Editor, agent
Mary James: Author
The value list for Author would be Jim Smith, Mary James
Editor: Jim Smith, Jon Jones
Agent: Jon Jones
That what you need?
You can set up relationships that match a text field storing one of these three values to the check box formatted field in order to get your conditional value lists.
Here's how you'd do it for "Author":
Define cAuthorKey as a text calculation with "Author" as its expression.
Define the relationship as
Books::cAuthorKey = People::CheckBoxField
When you have a list of values in a field used as a match field in a relationship, the records match if any one of the values in the list match the value of the field on the other side of the relationship.