I think that the zigzag is to be expected. Try a simpler example:
mat[x_?NumericQ] := {{2 x, 0}, {0, x + 1}};
eigen1[x_?NumericQ] := Min[Eigenvalues[mat[x]]];
eigen2[x_?NumericQ] := Max[Eigenvalues[mat[x]]];
Plot[{eigen1[x], eigen2[x]}, {x, 0, 2}]
The curves of eigen1
and eigen2
go zigzag and they do not cross.