We may be a stop on your cruise along the north coast of BC. We are in Prince Rupert. Currently it's 13 Celsius and drizzly, but last night we were in shorts and sleeveless top; it was around 25c.
Windproof and waterproof jacket with hood, don't bother with an umbrella. Depending on your activities I don't know that you'll need waterproof trousers, but being out on the ocean can be very cool, so some light gloves tucked into your pockets may be a good idea. I wouldn't bother with hiking boots unless you are actually hiking. Some good walking shoes should suffice.
The interior and south of BC have been extremely hot - up to 40 celcius, so summertime clothing is recommended as well.
I think even though you are on a cruise, dining here is more casual, so you may get away with smart casual rather than more formal attire.
That is a bit of a challenge! Try to colour coordinate your wardrobe so it is flexible.
I have a basic packing rule of 5 bottoms, 7 tops and 3 second-layer tops, plus a dress or two. I try to make sure all the bottoms and tops will go with each other.
I was also just away for 3 weeks. my five bottoms were blue jeans, white jeans, 3 shorts. I only wore the jeans on my first and last day, the rest of the time was in shorts, but if it was cool I could have worn the two jeans on repeat. 7 tops were 5 sleeveless and 2 t-shirts, and my 3 second layers were a dressy cardigan, a casual zip hoodie and a windbreaker. I also packed two summer dresses, and two swimsuits. I never felt like I was missing anything.
Good luck and have fun!