I found the answer scrolling through the forum:
Weights for disaggregated gross flows - CPS - IPUMS Forum
PANLWT is intended to account for the attrition of the whole population. Using it for smaller subpopulations renders estimates inaccurate.
My solution to this is to recalculate PANLWT for every subgroup, using the final weights and the code provided by IPUMS here:
I am sorry for not looking for the right answer to my question properly before posting it here.