Good morning -
Here are a couple of thoughts:
First, yes, you do need to weight cases using PWGTP.
Second, when troubleshooting, it might make sense to first try and replicate the results in an existing table (such as number of workers in each income category in table B20005B). PUMS will not exactly match published tables because PUMS is only a sample of the entire survey sample, but PUMS results will be close. Another option is to query sub-population earnings details using IPUMS and compare your results to those (which should be an exact match).
Third, are you sub-setting the population by any employment characteristics such as all workers, or all full-time/year-round workers? Most published tables on earnings comparisons are for workers ages 16+ who worked full-time/year-round.