I have a few thoughts about this latest version of your itinerary. I think you're getting closer to something ideal, but I think a few more tweaks are in order. My comments are in bold.
Helsinki - 3 nights (one to sleep off jetlag)
Oulu - 1 night I saw ristocc70's advice that you drive to Oulu. But it's a very long drive -- 7 hours according to Google maps -- and an even longer train ride (9:30). I haven't been there, so I can't say whether you should go there, but certainly not for a single overnight.
St Petersburg - 4 nights If you go to Oulu, how do you get to St. Petersburg?
Tallinn - 2 nights The train from St. Petersburg to Tallinn arrives at 12:35 pm. Since the ferry from Tallinn to Stockholm is overnight, you might consider cutting Tallinn to a single night. That still gives you a day and a half there, which might be enough, depending on what you hope to see. Having 2 nights will be great, but just something to consider if you are trying to find time to add elsewhere.
overnight ferry to Stockholm - 1 night
Stockholm - 6 nights with day trips to Uppsala and the Archipelago I think I would cut Stockholm back to 4-5 nights. You will arrive very early the first day, so 6 nights is 6 full days. You could probably find enough to do, but I think you're giving short shrift to Copenhagen (see below), so I would add it there. Or I would add a stop in Kalmar for a couple of nights between Stockholm and Copenhagen.
Copenhagen - 2 nights I recommend at least 3 and 4 would be better. In addition to the city, there are many delightful day trips from Copenhagen.
Gothenburg - 1 night I haven't been to Gothenburg, but another stop to consider on the way to Oslo is Fredrikstad. It's a popular weekend getaway for locals, a lovely town with a historic fort and attractive waterfront.
Oslo - 5 nights with day trips to Fjords Rather than day trips to fjords, cut Oslo back to 3-4 nights, and add a night or two en route between Oslo and Bergen. The best way to explore the fjords is to spend time among them. I spent two nights in Balestrand and rented a car for the day and it was glorious.
Bergen - 2 nights
Oslo - 1 night