The normals don't look flipped, it looks more like they have a different smoothing group that the surrounding polys (or they all have no smoothing group at all). Try adding a Smooth modifier (just Smooth, not Turbosmooth or Meshsmooth) on top of the stack (make sure you don't have anything selected or are in any sub-object…
It looks like a botched Boolean to me too. I suspect the odd verts fall on the path of an edge that already existed. To clear that up either target weld the extra verts, or select the verts in that punched in piece and weld them all, then re-smooth. If its not a botched boolean, this can be caused by some of the polys not…