@James Blackburn yeah ground plane is almost always the culprit when everything else looks right on paper. The thing people miss most often is that the ground plane *under* the antenna keepout zone matters as much as the keepout itself — if you have a solid copper pour on the layer directly beneath the antenna trace, even with the keepout respected on the top layer, you're effectively detuning it. What does your stackup look like under the antenna area on inner layers or the bottom copper?
The other thing worth checking is ground plane continuity and stitching around the module footprint. Gaps or islands in your pour can create impedance discontinuities that hit you harder than you'd expect — especially at 2.4GHz where the wavelength is short enough that even a few mm of broken ground changes the picture. If your board is 2-layer and you're running signal traces through the region near the RF section, that's another place I'd look.
What's your board layout roughly — 2 or 4 layer, and is the module sitting near any other significant copper mass like a battery pad or a connector shield?