Problem:
Design principle - creating tens of thousands of relationship instances, performance
Solution:
If we rule out Toolset totally here, even with only WordPress, with such mass content having more than tens of thousands of posts WordPress will also have performance issues. I'm not saying it will not work but it may have impact on performance based on the number of taxonomies, relationship and what filters you add to your view.
In general, performance obviously affects the site speed when you have that many custom post type setup having thousands of posts with the number of taxonomies as well as custom fields. One aspect is how much content you have BUT it depends also on your server configuration (memory,cashing) as well as number of other factors such as how complex your data structure is.
Problem:
The customer reported that he can only save a post in a post reference field in one of the 3 languages added in WPML.
Solution:
Guided that this is expected behavior and when using post relationships with the WPML, relationship connections are only maintained between the primary language posts. WPML automatically shows the related post in the appropriate language, if its translation is available.
The post reference field is also a kind of post-relationship, so he'll just have to select the related post in the primary language.
Problem:
The customer asked how to disable the radio options in the views search form which can't produce any results.
Also wanted to keep the count of results next to those options unchanged.
Solution:
Guided about the options to disable or hide the options which can't produce results in the view's custom search settings.
Also explained that with this setting the count of the results next to those options would also update, each time search input changes, so shared some custom script alternative.
Use custom field of related post in [wpv-conditional] shortcode.
Solution:
In order to use "item" attribute, you can try to setup one-to-one post type relationship, so you will display the "contact-role" checkboxes field second option value with shortcode: