My fist choice would be to spend at least one night in Barcelona. If the hotel was not full the night before, they may have a room free for morning check-in. You can also alert then by email or online booking note about your planned arrival time.
I'm not familiar with Girona. The fact that it's not right on the coast probably means it will retain its normal "life" in winter, not be so dead as a beach town (but with less to offer than Barcelona). Train ride is short and direct from Barcelona Sants or (later departures) P. Gracia stations.
If you plan to pick up a rental car in Spain and drop it in France or another country, then that adds a significant fee to the price, but may not cost much more than two train tickets to a further destination in France. Perpignan is a pick-up option on the French side of the border, and train ticket not expensive.
If you fly from Barcelona to Nice on a budget carrier, then allow plenty of airport time to claim and recheck you luggage. If you miss that flight connection, the ticket will be lost, since EasyJet and other budget options have no interline agreements with other airlines.
You can take a train all the way to Nice in 10 hours with one connection, but that leaves Sants station about 9:25 a.m., which is too tight to count on, and advance-discount tickets have the same non-refundablity issue as plane tickets. Mid-day departures take longer, with more connections. Similar issues apply with connections to Carcassone, although distance, time, and price are all less. Then, about 16:30, there's a TGV that's direct to Marseille, also stopping at Perpignan, Narbonne, Montpellier, Nimes, Avignon, and Aix-en-Provence. Cheap fares are for sale now through the first week of March, from €50 per person to Marseille.