The reason it takes weeks to receive forwarded mail via USPS is because the mail has to be sent back to the sorting facility then get the forwarding sticker put on the mail and then it has to go back to your local post office or other address to be sent out.
Also it takes a few days for the USPS to get your change of address form as well and then it takes awhile for the USPS to update everything in it's computer.
It can take at least 1 week to get your forwarded mail in the beginning and sometimes it may take as long as 2 weeks to get your mail.
So you just have to be patient when receiving your forwarded mail through USPS as they get everything straightened out.
Your new address will be entered into their system and the postal employees have to get used to sending your mail to the new address as well.
A month ago I switched my USPS mail from the local post office to a curbside mailbox I installed so I could get my mail earlier.
It took 2 weeks for the mail to come like it should but now the mail comes to me smoothly.