You set your variables to number and you are checking Text with the "" in your case statement.
$ = local varible and $$ = Global variable. You didn't state where you were setting these variables, so the wrong amount could be passed to your let / case statement.
If all variables are local then use the following.
Case(~W < 501 ; $fivehundredlbs;
As well as S Chamblee's comment:
I don't know if you copied and pasted the calculations, but the variable names don't match. For example: $fivehunderdlbs and $fivehundredlbs; and you don't say where you set the variables $fivethousandlbs and $tenthousandlbs.
(Also, note that S Chamblee's layout of the Case statement makes it much easier to read and de-bug.)
It's also possible to forgo the calculation and use a relationship with this value to look up values from a table. This can often make managing future changes to the values much easier--a data entry task instead of a database design change task.