Using and saving custom dropdown boxes on user profiles

You appear to be checking for variables that aren’t set.

You set $selected

$selected = get_the_author_meta( 'user_top', $user->ID );

But then you check for something called $topselected

<select name="user_top" id="user_top">
    <option value="gotguns" <?php echo ($topselected == "gotguns")?  'selected="selected"' : '' ?>>I got guns</option>

The same thing happns with $middleselected and $bottomselected

I think your problem is nothing more than a mistake in the code.

Though WordPress has a function called selected that would make that a little neater.