Which test would take advantage of comparing large sample groups with replicates? So, the data is comparable to height of individuals within Africa and Europe, but each group (Europe, Africa) have multiple replicates (3 x month sampled).
Each replicate is ~100,000 individuals.
A standard method would be to take the mean from each replicate and use those to compare the two groups, however this reduces the hugely powerful dataset into only three Vs three.
I would like to utilise the statistical power of the 300,000 Vs 300,000 data points we have available, but when applying a linear model with the replicates nested, it is highly significant (p=0.00000000), but significance was also detected in our negative control comparison (three countries in Europe Vs another three in Europe) where no significance should be observed. When looking at the negative control comparison as well it is obvious that there is no difference and the linear model is being too sensitive.
Is there a better test I could use for such data?
Out of interest, here in the code used for the linear model;
# Check distributions and counts per category
boxplot(FSC ~ Repeat , dat, col=rep(c("#FFD662FF", "#00539CFF"),each=3),cex=0.1,names=c("Control","Control","Control","IgA+","IgA+","IgA+"))
with(dat, table(Group, Repeat))

# nested model
# http://www.personal.psu.edu/mar36/stat_461/nested/nested_designs.html
# https://www.statology.org/nested-anova-in-r/
mod <- lm(FSC ~ Group/Repeat, dat)
# same as mod <- lm(measure ~ treatment + treatment:replicate, dat)
par(mfrow=c(1,2))
plot(mod, which = 1:2, ask = F)
par(mfrow=c(1,1))
# Treatment effect but no effect of the replicate within the treatment (perfect data of course)
write.csv(anova(mod), "ANOVA.csv")
```


You can address your research question by applying a linear mixed model.
Let $X_{it}^{(1)}$, $X_{it}^{(2)}$ be the heights of the two populations (say, $X^{(1)}$ for African, $X^{(2)}$ for European), $i$ identifies the sample and $t$ is the time point. You may safely assume that $X_{it}^{(1)},X_{is}^{(1)}$ may be dependent but $X_{it}^{(1)},X_{jt}^{(1)}$ are independent; the same applies to $X^{(2)}$. Furthermore, $X_{it}^{(1)}$ and $X_{js}^{(2)}$ are independent for every possible choice of the indices.
If $X_{it}^{(1)}$ is a matrix of $n\times p$, where $n$ are the African individuals, measured at $p$ time points, reshape this matrix by stacking its $p$ and placing them one under the other, starting from the second. That is, pick the second column of $X_{it}^{(1)}$ and place it under its first column, pick the third and place it below, and so on. Call this very long column vector $Y^{1}$. You also have to give to each African individual a unique ID, which has to be replicated $p$ times for each individual.
Do the same for the Europian sample, thus creating $Y^{(2)}$; have also a unique ID for them, different from the previous sample.
Now get $Y$, the huge column vector given by placing $Y^{(2)}$ below $Y^{(1)}$. This will be your response variable. Merge the ID's of the two samples in a single column. Lastly, create a dummy variable for the nationality, taking the value 1 if the individual is African and 0 otherwise.
After this, your dataset (say mydata) should have three columns: the ID, the response $Y$ and D, the dummy variable, for each individual in the sample.
In R, using the nlme package, run
mm <- lme(Y ~ D, random = ~1|ID, data=mydata)
summary(mm)

and check if the coefficient of $D$ is statistically different from zero.
In this model we assume the heights are Gaussian (with suitable parameters); that may not necessarily be realistic but it's the necessary compromise in order to be able to use the linear mixed-models machinery. Furthermore, random = ~1|ID is useful for handling the fact that observations are repeated in time.
