Be aware that the BC and Wash State ferries are reasonable.
The private cruise connections run in the $100+ range.
From Vancouver you can take the BC ferry to Sidney -
Then ride a mile over to the Wash ferry to the San Juans.
The Noon departure does NOT stop at Friday Harbor; the 5:55p DOES.
From Friday Harbor you can take ferries to other islands free.
Then take the ferry back to Anacortes.
From Anacortes I would head down Whidbey Island to Coupeville -
Then take the ferry to the fab town of Port Townsend.
I suggest US 101 down the Hood Canal -
Then cutting over from Sheldon to Montesano -
Finally taking US 101 down along Willapa Bay to Astoria - lovely!
You can catch two different provate operators from Bellingham to Friday Harbor.
Also, you can catch a private ferry directly from Friday Harbor to Port Townsend.