Advice on how to build multiple cross-tagged content types

I would create 2 custom post types:

  1. People
  2. Organizations

I would use the default Post post type for the articles (Assuming you’re not already using this for a blog or something else).

ACF is my plugin of choice when it comes to custom fields, it allows you to create metaboxes that list all posts under a custom post type. It also allows you to select multiple options.

Under Posts (Articles):
I would add one custom field to poll all People

Under People:
I would add one custom field to poll all Organizations

This way on the front end you can create a page that lists all Articles, and you would already have the article -> people association formed.

You would also be able to have a page for each person listing all their articles by running a query on all posts that have their name in the relational custom field. people -> articles

And finally you would be able to create a page for all organizations and list the association organization -> peoples

I would reserve custom taxonomies to further filter out results (eg. article type). I find that taxonomies should be used only to classify objects on a shelf, but it should not be the actual object on the shelf.