More than trying to give a definitive answer, some suggestions.
WP Development Installation
Although you can have an online test install, a local install will give faster results in a trial/error process.
WordPress local development environment
Gathering External Data
Depends on your source of content. But if handling data in a SpreadSheet, the plugin CSV Importer is quite nice to make batch import of Posts/Pages/CPTs, their taxonomies and custom fields.
Of course, you’ll work with just a sample of the total data until having a definitive setup.
Custom Posts, Custom Fields and Relationships (plugins of interest)
Posts 2 Posts
Efficient many-to-many connections between posts, pages, custom post types, users.
Probably will be the most useful in the described scenario.
Custom Content Type Manager
It allows users to create custom content types (also known as post types) and standardized custom fields for each, including dropdowns, checkboxes, and images.
Has repeatable fields and “relationships” (select other post types items as a field).
Having both CPTs and CFs in a single plugin can be a plus.
Advanced Custom Fields
Fully customise WordPress edit screens with powerful fields.
Repeatable fields are a premium add-on. Also has “relationships”.
Its location rules for the CFs are quite interesting: Post Type, Logged in User Type, Page, Page Type, Page Parent, Page Template, Post, Post Category, Post Format, Post Taxonomy, Taxonomy, User, Media.
Custom Metaboxes and Fields for WordPress
This is a code library for WordPress themes and plugins that makes it easy to add metaboxes to the post screen.
If developing a custom made theme, this library can be useful.
Conclusion
After having a probable course of action, split your issues in small/answerable bits and open new questions for each. E.g., “How to search the Custom Fields of two CPTs?”, “How to make the YYYY relationship work?”.
And, of course, search this Stack as it has a great accumulated knowledge base.