Some people really love Zagreb, but five nights there seems like a lot. Same for Dubrovnik, but there are more obvious day trip possibilities from Dubrovnik, at least. How did you pick this number of nights in each city? I generally do it the other way around: figure out what interests me in each place, then base the number of nights on that.
From Dubrovnik, you could day trip to Montenegro, to towns like Mostar and Trebinje in Bosnia, to islands - what interests you? Dubrovnik gets extremely busy with cruise ship tourists during the day, so it can be unpleasant in the daytime (great time for day trips!) but much nicer at night.
From Zagreb: assuming you don't stop at Plitvice Lakes National Park on the way from Split, that would be my top day trip (though I would prefer to spend a night at the park to enter it early in the morning, to avoid the big tour group crowds that invade Plitvice by mid-morning - maybe not as bad in October). You could day trip to Slovenia - Ljubljana is an easy trip by train or bus, though personally I'd prefer a night or two there.
There are direct buses between Dubrovnik, Split, and Zagreb. There's also a direct train between Split and Zagreb. Take your pick. Renting a car and driving is pretty easy and affordable, too. You don't need a car just to get from place to place, but if you wish to stop along the way - and there are some very worthy stops - having a car gives you a whole lot more flexibility.