Carnival's best option is to stick with their home port strategy of putting ships where their competitors aren't. They should be giving every concession conceivable to Charleston to keep that port open if it is possible (and it probably isn't, I'm sure they've tried for 10 years to make that port work and the NIMBYs are bound and determined to block it). Expand operations in Mobile as much as feasible. Put a newer ship, maybe an additional ship in Norfolk. Could Savannah, GA support a cruise ship? How about Corpus Christi, TX? There is enough interest in cruising right now that they could probably fill a ship every 4-8 hour's drive down the coastline.
They cannot compete against their competitor's when both are at the same port, except on price. Look at what happened when RCL came back to Long Beach - those Radiance and Panorama cruises are consistently some of the cheapest in the fleet despite being their newest non-Excel concepts. And competing on price won't pay down debt.