I’m pretty sure it’s not the fuel filler cap
It could very well be a bad vent valve or purge valve
You already tried the cheapest option . . . which is replacing the cap and clearing the code
Since emission inspection is coming up, I suggest you bite the bullet and pay a reputable shop to diagnose and repair the problem
Unless you have professional experience as a mechanic, along with a high-level bi-directional scanner, smoke machine and the knowledge needed to figure this out