Here's what we did last August:
- Stockholm 4
- Helsinki 3
- Copenhagen 4
- Odense 1
- Bergen 2
- NiN - Flam 1
- Oslo 4
Copenhagen was the only place where I really wanted more time. We happened to be there during Pride week and a big triathlon (or maybe it was a marathon?), so the crowds were heavy, and that slowed us down some, but also there were just a lot of things I wanted to do in the area, and both Roskilde and Helsingor are a ways away by train.
Looking at your itinerary, I would consider taking a night from Bergen. It's a lovely town and well worth visiting, but I felt we got enough in two days. We took the funicular up on the first day and did Rick's city walk and other exploring on the second day. The NiN train left early on the third day.
I would not short Oslo as it's a pretty big city that has a lot of interesting sights that are quite far apart.