I'm a big fan of the above graph (not mine originally) for understanding just how important CdA is to speed and for doing some CdA sanity checks. I know there are a bunch of assumptions in that graph that don't quite match (like flat course), but it will still be in the right ballpark to check reasonableness.
-) Your competitor did ~40km/h. So he is on the 1000w/m^2 curve, meaning their CdA is roughly .23m^2 at 230w
-) You did ~35km/h avg. That puts you roughly on the 700w/m^2 curve, meaning your CdA is roughly .37m^2 at 257w.
Very slippery TTers will usually have CdA values between say .19 and .21. .23 is not bad for a position that can be held in a half triathlon. .37m^2 on the other hand is in the range of "poor road position". So what could explain that:
1.) As you first point out, a power meter reading high will throw this off, but sounds like you did some double checking.
2.) The Crr assumption of the above graph could be off. To get the .45 Crr, you really need to be rolling very fast tires and latex tubes. Throw on slow tires like gatorskins and butyl and all bets are off.
3.) Your position/setup could be that bad aerodynamically. Your head does look very high in the pictures you posted. You don't have a disk, your water bottle is not that great, etc. To get down to <.23CdA, you really need to be attentive to details, getting lots of little things right.