Hi Rob,
I think your overall itinerary sounds good, but I have a few suggestions/alterations. I would agree with Amy and add a day to Sevilla. If it were me, I'd forsake Malaga for the Pueblos Blancos - the white hill towns south of Sevilla. You can rent a car when you leave Sevilla (pick it up at the airport to avoid driving in the city) and drive south to Arcos. Spend a few hours seeing the town, then drive La Ruta de los Pueblos Blancos through the mountains to Ronda, spending 2 nights there. Then drive to Granada, dropping the car at the Granada Airport (again, to avoid driving in the city), and spend 2 nights, before flying to Barcelona, which is much faster than taking the train. See www.skyscanner.com for flight options.
Malaga is not one of Rick's favorite places, as the Costa del Sol is very overdeveloped. That being said, it does have several interesting museums (Picasso, Flamenco and interactive music museum to name a few), an old Moorish fortress, beautiful cathedral, nice seaside promenade and of course, beaches. But, it is a big city and I'd skip it to see some of small town Spain. Driving outside of the cities isn't a problem, so don't let that sway you. You will just need an international drivers license, which you can get at your local AAA office. See www.autoeurope.com for rental options.
In the Barcelona area, if you are looking to spend a night or two in a smaller town, I'd choose Cadaques. My favorite day trips are Sitges (nice beach town), Montserrat Monastery and Tarragona for some good Roman ruins.