The missing annotations matter less than you'd think, provided your background is consistent. Enrichment compares your module against a universe, so if both come from the same eggNOG output then unannotated genes are simply absent from both sides and the test is still valid. What genuinely breaks it is testing annotated module genes against a whole-genome background, because then you're comparing against genes that never had a chance to be annotated in the first place.
Two things to get right on the universe:
- it should be the genes that have annotation, not all genes;
- it should be restricted to the genes that actually went into the WGCNA (i.e. after your expression filtering), not the full gene model set. Using the whole genome as background for a module test is probably a bigger source of false enrichment than your missing GO IDs.
For coverage, the usual approach is to combine rather than replace. InterProScan is the natural complement to eggNOG-mapper: it's domain-based rather than orthology-based, and InterPro2GO will pick up GO terms for proteins where eggNOG found no usable ortholog. PANNZER2 is also worth trying, it's specifically built for GO prediction in non-model organisms. Take the union of the three and you'll usually close most of the gap.
For KEGG specifically, eggNOG's KO assignments are serviceable but BlastKOALA / GhostKOALA come directly from KEGG and generally do better.
Since this is plants: if you have a reasonably close sequenced relative, orthology transfer often beats de novo annotation on coverage. Run OrthoFinder against Arabidopsis or rice and carry over the TAIR / RAP-DB annotations for confident one-to-one orthologs. Also have a look at Mercator4 / MapMan -- plant-specific functional bins, usually far more interpretable for plant biology than generic GO terms, and coverage on plant proteomes is good.
The one bias you can't engineer away: annotation transfer favours conserved genes, so lineage-specific and fast-evolving genes stay unannotated no matter which tool you use. If one of your modules happens to be enriched for exactly those, you will systematically undercall it. Better to state that as a limitation than to assume more tools will fix it.