Ubercart Ajax change attributes on checkout
This may not be the best/proper way to do it, but I have manipulated product attributes in 

function uc_cart_view_form($form, &amp;$form_state, $items = NULL)

it is located in uc_cart.module

$items is filled with products and you can loop through and review/assign attributes.