I'm going to echo the Richmond sentiment. There are several later-day trains to Richmond, depending on your flexibility:
1530 (3:30 PM): #82 is currently $62, or $55.80 with AAA (it drops to $52.70 with Student Advantage, but that's a semi-dedicated pay program; I recommend it if you do a decent amount of train travel, but not otherwise). Business Class is another $31; whether it is worth it is something that we all have differing opinions on.
1630 (4:30 PM): #88 is currently $120, or $108 with AAA/$102 with SA
1658 (4:58 PM): #98 is currently $120/$108/$102.
Of the options, #82 would be your best bet in terms of cost. If that doesn't work out, I would suggest #98 instead of #88. Yes, it gets you into Richmond a bit later, but it's an overnight train to Florida, which means that you get a far, far better seat (footrests, legrests, etc.) than you even get in BC on the Regional. In all fairness, it doesn't have on-board wi-fi, but it does have a full dining car in lieu of the Regionals' cafe if you can work a meal into your budget. The seat alone would seal the deal for me, but I'd seriously consider grabbing a proper meal on board if it fits your budget (there are sample menus available at Amtrak's website).
And don't mind Swadian...Philly-Charlottesville on a bus is longer than I suspect you'll be comfortable, especially given holiday traffic and the lack of any on-board food option for the 5-6 hour trip.