Applying validations would be tricky since the name of the element is dynamic. What may be a better solution is to always check if the value is either personal or business, if it is not then it should be assumed to be one of those. This would be a custom if statement that would check to see if the value in the cart is was set to either, if not then print out selected for the first choice.
The default value you set for the add to cart should be reflected in the cart. To check into that part further I would need the code from the pages in question, it would be best to have a copy of the cart page and the add to cart page.
When you say the buttons are not carrying over to the confirm page do you mean that you can't see them in the cart or do you mean when you reference the column you get an error?