the weight in the database can be less than 1lb, but the weight passed to the shipping provider must be at least 1 lb. in the code for the weight, you can add a condition to pass 1 if the weight is less than 1 or use the total weight if it is more:
<?php echo(($yourCartName->TotalColumn("Weight") < 1)?1:$yourCartName->TotalColumn("Weight")); ?>
To offer a shipping type selection, you will need to add a select list to the checkout page:
<select name="USPS_Service" id="USPS_Service">
<option value="FIRST CLASS">First-Class</option>
<option value="EXPRESS">Express</option>
<option value="PRIORITY">Priority</option>
<option value="PARCEL">Parcel</option>
</select>
and add a hidfden form element of the same name to the form on the confirm page that will capture the value posted:
<input type="hidden" name="USPS_Service" id="USPS_Service" value="<?php echo(isset($_POST['USPS_Service'])?$_POST['USPS_Service']:""); ?>" />
next add a set session value behavior, set the trigger to any form post, set the name to USPS_Service for the value, click the lightning bolt icon and select the USPS_Service form element.
in the shipping behavior, bind the shipping service to the USPS_Service session variable.