You have ten nights. Here's how I'd do it (yes these are my personal preferences):
Ljubljana (3 nights - including day trip to Bled. Optional rental car for one day)
Train to Zagreb in morning. Explore Zagreb, pick up car late afternoon, drive to Plitvice
Plitvice (1 night)
Split (2 nights)
Sarajevo (2 nights)
Drop car in Dubrovnik when you arrive
Dubrovnik (2 nights)
Still a very rushed itinerary, but it sounds like that's what you're determined to do.
Three nights in Ljubljana isn't much given that the first day is your arrival day and the third you'd be leaving early for Zagreb. You really have two full days, one dedicated to Bled. If you can't get a good flight into Ljubljana, try Venice with a transfer to Ljubljana (about 3 hours).
No, I didn't care for Zagreb much, but it is worth half a day at least. Opatija to me was a charmless old Austrian spa town with big old villas and expensive cars and would seem like a wasted diversion of two nights. I enjoyed the waterfront area, but I explored that in an hour, which is about all the time I spent in town. I stayed a night in nearby Lovran and enjoyed the seaside walk along the Lungomare, but I would't waste two nights going out of my way to do it.