This requires some elaborated work. The basic idea is to make all function "algebraically-ready" before they are inserted into the plot function. Here is an example:
f[x] = Det[Inverse[{{1,2},{3,x}}]]
g[x] := Det[Inverse[{{1,2},{3,x}}]]
Plot[f[x],{x,100,200}]
Plot[g[x],{x,100,200}]
The first plot should be significantly faster than the second because f has the rhs evaluated already during definition while the g looks for the inversion first and compute the determination. Check the downvalues of f and g respectively:

Use this idea to precompute functions. For example, Yiidealtotal is thus converted to a rational function before it is inserted into the plot funciton:

Some notes about the optimization: Numeric computation may yield imaginary residues in coefficients, which are difficult for simplification. You want to take a look Simplify[Chop[#]]& function to knock down the complicated expressions.
To simplify a list of function, you can choose the parallel function to accelerate. For Yi[x]:
Yi[s_] = ParallelMap[Simplify[Chop[#]] &, nciM.Inverse[ZLRC[s]].nci];
Use the attached notebook to take a look at the details.
PS I use high precision numbers throughout the notebook to handle the large coefficients.
Attachments: