Wie auch die Dokumentation lang und breit erklärt hat
threads::shared keine Unterstützung für Autovivification und ein Aufruf von
share wirkt sich auch nicht rekursiv auf verschachtelte Datenstrukturen aus.
Du musst also jede neue anonyme Arrayreferenz, die Du in Deinem von mehreren Threads benutzten Array ablegst, zunächst mit
share bearbeiten und erst dann mit Daten füllen, damit die Kommunikation der Threads hier funktioniert.
When C++ is your hammer, every problem looks like your thumb.