Are you boiling/sterilizing your bottle caps?
my routine:
As they empty:
Wash each bottle as clean as possible without getting complicated immediately after emptying.
Store upside down until I have a full set.
Bottling day pregame:
water/bleach mix, soak, scrub, rinse repeat
Rinse again, and maybe a third time with regular water depending on my bleach paranoia level/feel that day.
Bottling day kickoff:
soak in starsan solution immediately before bottling.
usually shake/swirl/rinse with starsan solution again just to be sure all surfaces are wet.
I fill right on top of it, and the SS foam comes right out as I get the bottle filled and runs down the side.
Place a sterilized cap on the bottle, set on the table - continue the painstaking process until all beer has been moved from the bottling bucket to the bottle.
Crimp the caps on
Wash the bottles in the SS solution again because I like my bottle CLEAN, then let dry. (last step optional I guess)
This is what works for me.. keys being, rinse a lot since using bleach, rinse some more, scrub even when the bottle appears clean to your naked eye, dont fear the foam in SS it is a wet contact sterilizer, so if its dry, its not sterilized.
You know, I suppose if you have the ability to do so, you could boil each bottle to ensure its sterile.
-or-
boil say, a six pack worth of bottles and then follow your normal process with the rest
mark the boiled ones and test your brew after they condition to see if you note a difference. If so, that would at least narrow it down to a bottle sterilization procedural problem.
Really you could also split your batch, one using RO water, and one using tap if you suspect that to be the problem as well.