In Ketchikan the Totem parks, Kayaking or a tour of the harbor are great. In Juneau Whale watching or a helicopter ride out to and landing on a glacier. In Skagway the White Pass Railway has unbelievable views. I personally did not care for Haines so someone else will have to help you there.
On the contrary, I loved Haines! Not so much for things to do, but if you happen to be there on a sunny day, the setting is absolutely spectacular! We enjoyed a walking tour of the (small!) town. Interesting history. On the other hand, we were on Cruise West (61 passengers our sailing) and didn't have to share Haines with anyone else but locals. From a big ship the perception would be quite different.
If you are into shopping, Haines is rather an artist's colony, and you might find some handiwork, especially jewelry, that you like.
I had a group in Alaska several years ago and we stopped in Haines. My son and I got off and thoroughly explored the town and its surroundings. You are right that the setting is beautiful but I just didn't care for the town, its people or the overall experience.
At dinner that night I sat at a table where two of the agents had fallen in love with Haines and spent time with a Realtor looking at property. As I understand it, they purchased a home right out of town and spend their entire summers in Haines.
Skagway go with the train. Sign up for afternoon though the weather in morning can be foggy, wet and cold. We did the afternoon train ride and spotted a black bear!
Juneau we did the whale watching which was fun. We saw 2 whales, sea otters, bald eagles, etc.
Ketchikan we really enjoyed shopping
Haines disappointing not much to do unless you do an excursion.
In victoria we did an 1 1/2 hour carriage ride on our own around Victoria which was terrific and then we did some shopping.Our carriage was white cinderella type carriage.