In short, running the GA with integer and linear constraints means that it will frequently generate infeasible solutions in the population (this is contrary to what the documentation says at the time of writing). The infeasible solutions are substantially penalized.
In my particular problem the infeasible solutions quickly dominate the population except for the elite initial feasible solutions that were generated. I suspect that when the plot is calculating the mean fitness, it discounts all infeasible solutions. This is why the best and mean converge between generations 10 and 25 in the top plot, because it is only counting the 5 elite and feasible solutions.
Eventually, the infeasible solutions begin to become feasible due to the crossover favoring better fitness. At around generation 26 a better feasible solution is generated and the best begins to improve. Likewise, the presence of more feasible solutions causes the mean to jump up.
The lack of diversity in the population is an illusion based on how these infeasible solutions are plotted in the various built-in plots.