First if you have a relationship defined from Party to Role you should be able to walk from Person->Client, Person->Vendor, Organization->Client, and Organization->Vendor. If this is too broad (based on parent classes) you can define
relations directly from Person->Client, etc if you wish. This referential integrity will also manifest itself in the database as well.
Also you can select disparate objects into the same subdomain using the predefined select commands. You can additionally create your own custom ones as well. See the code below to load a USER and a JOB into the same subdomain via two different
SubDomain subdomain = new SubDomain();
UserAccountCollection userAccountCollection = subdomain.GetCollection<UserAccountCollection>();
JobCollection jobCollection = subdomain.GetCollection<JobCollection>();
If you want me to look at your model, please forward it to email@example.com.