Database design - Projects with multiple Clients but only specific client contacts
You need to add another table: ProjectContact that will be an intersection between ProjectClient and ClientContact.  This will let you say which contacts apply to a particular project.

The issue that you're going to have is controlling the integrity of the data.  You want to make sure that all project contacts come from clients that are actually on the project.  This can be done with declarative referential integrity (DRI) or by application logic.  Based on your table design, you seem to be pretty firmly in the camp of "every table gets a surrogate key" which makes using the DRI approach a little harder.  

To use DRI for this, you want the to use a compound PK for both ProjectContract and ClientContact and in each case it should contain ClientID.  The same is true for the new intersection table, ProjectContact.  This will ensure that ClientID will be the same and your data must make sense.

Here is an illustration of what I'm suggesting...