Personally, I wouldn't try and 'do' Croatia and Slovenia in one trip. There's so much going for each of them individually that you're dashing about without being able to properly see places/enjoy them. 7 nights is no time at all to cram all that in. We did 12 nights, 4 locations, and would happily have spent an extra night at any of them.
I'm not sure why you'd fly into Zagreb, only to then spend a day there and then drive to Ljubljana. I'd just fly straight to Ljubljana. And I wouldn't spend one of your days in Ljubljana visiting Lake Bled!
I would plan a trip to Slovenia alone, I'd stay in Ljublijana for a couple of nights and then head to both Bled and Bohinj (I'd stay in both - there's plenty to do out of both bases), then I'd either head to the north east (the area around Maribor looks interesting), or down to the coast via the caves (the caves at Škocjan are apparently much better than those at Postojna, which the locals told us are quite a tourist trap). The coast around Piran is amazing. From there you can either fly back from Ljublijana or from Trieste.
I would do Croatia as a separate itinerary (but can't suggest one as I haven't been!)
As to the cost... we almost booked as a tour like yours (self-guided, hotels/travel only), but when I looked into it in more detail it was WAY cheaper to book ourselves. We booked the same hotels as the tour company (Inntravel, in our case) and paid about 60% of the price their tour was coming in at).