The error is in the check for '1' - you are checking the user record, when you should be checking $_, the quantity for which you are currently generating the option field:
if ($_==1){# show name 'individual' for qty 1 else show number
I find this sort of output most easily generated with (s)printf:
@quantities = ('1','5','10','25','50','100');
printf(
'<option value="%s"%s>%s</option>',
$_, # option value is the quantity
($_ == $userRecord{$pack_qty}) ? ' selected' : '',
($_ == 1) ? 'Individual' : $_
) for @quantities;
Hugo