I would HIGHLY suggest Charleston over MB.
I'm from SC and could go on for hours about all the cities listed as I'm from the area and have spent a ton of time in all.... have lived in two.
Jacksonville - I wouldn't really want to be there as just a tourist. It's a decent city but it's not on beach, though it is nearby. A wonderful place nearby is Amelia Island. There are some lovely resorts there and you could get some great beach time in.
Panama City - not my favorite either. It's like MB but on a different body of water. I'd do St. George Island for a nice, peaceful beach trip or just go on to Gulf Shores to minimize the trip between there and Mobile.
Chattanooga - make sure you go to the aquarium
For the mountains - are you looking for a place in a town? A place with outdoor sports like hiking? A place on the water? Something remote and quiet like a cabin in the woods with a hot tub and a great view? Gatlinburg, Pigeon Forge and Cherokee are tourist traps and I wouldn't spend my time there. I've been to all and would not bother stopping. if you want a city, go for Asheville. If you want solitude, I can point you to some lovely cabins.
Cumberland Island is very nice as mentioned above.
Do be aware that it will be hot... amazingly hot. I've lived in the deep south for decades and especially in places like Savannah, Charleston and New Orleans...I occasionally think "holy crap it's hot" even after all my years here.
Do you need any suggestions for activities, hotels or restaurants? I'm a little older than you though not a ton so I can give suggestions for activities where you won't be half the age of others there if you need for some cities.
As mentioned, hurricane season is no fun. Hopefully you'll get lucky but it's not just the big storms we worry about, it's tropical storms and tropical depressions that can dump a lot of rain and leave you with unreal humidity. We are currently getting storms every single day in Atlanta. Just be sure to know of a couple of indoor activities in the cities as well, not just walking around or hanging out on the beaches.