While, I do believe that what they did by charging you for the entire weekend was wrong. I have to ask, did you call to change or cancel your reservation before their desired cancellation policy(usually 24hr in advanced to 6pm the day of arrival)? There is an explanation I can offer you however. When hotels become full, it is the same as a flight being booked. When the plane takes off, if your not on it, that seat cannot be sold to someone else instead. Just like when you book a room. If you don't cancel before the desired time frame than that room is still consided yours therefore it cannot be sold. That's why you guarantee them with your cc#. This is why there are cancellation policies in place.
However, not to be totally on the companies side. If you did indeed call before the cut off, and they were not full the other days you were requesting, there should have been no reason you couldnt move your dates. But again, another factor would be if you were an advanced payment. If you booked the advanced payment rate, then no the front desk/ reservations would have been able help to you. You should have then asked to speak to the GM and if still no help was recieved, 1-800-HAMPTON could have assisted you. They are really the only ones able to help in a situation such as yours because they would have to be the ones to move your payment. Again, if you were an advanced purchase. I do sincerely apologize for the supposed ignorance of the hotel you stayed, but I hope that the information I have given you helps, and that you decide to let our brand redeem ourselves through our other hotels.