Constraining data based on related data in a different table. Should this be done on the database level or the application level?
From my understanding of your question, I feel this might work.


Remove CustomerVendorServices table from your design.
Add ServiceID and CustomerCost in VendorAccounts table.
Remove the FK reference for VendorID in VendorAccounts table from Vendors table.
Add a FK reference for VendorID in VendorAccounts table from VendorServices table.
Also have a separate Services table identified by ServiceID having ServiceDescription and DefaultCost.
VendorServices will then have a composite primary key of VendorID and ServiceID.