I'm currently working to model a party/organisation/person datamodel but I'm having some problems on how to do this.
There is one party entity (in the model sense) that will have to hold all (sorts of) parties.
A party can consist of 0 to N persons and 0 to N entities (in a legal sense, companies, foundations etc.) and 0 to N Entity/Person combinations. There ahs to be at least 1 of these to make up a party.
Any of these 0 to N entities (in a model sense) will be historised as this is the way things happen in real life.
The party entity (in a model sense) will function as linking pin to be used as customer, adressee etc.
Having looked at your model, you should make all ties knotted and historized. The knot, perhaps named "Involvement", should have two values 'Involved' and 'Not involved' and referenced from all ties, such that over time the members of a party may change.
In order to find what a party looked like at a particular time, use the point-in-time function on the tie, with a WHERE condition to include only those that are 'Involved'.