I think you want something like this to convert your plot labels to LaTeX
(note that I'm also using CustomTicks
):
Needs["MaTeX`"];
Needs["CustomTicks`"];
LatexPlot[plot_, fontsize_] := Module[{xmin, xmax, ymin, ymax, al},
{xmin, xmax, ymin, ymax} =
Flatten[PlotRange /. First[AbsoluteOptions[plot, PlotRange]]];
al = AxesLabel /. First[AbsoluteOptions[plot, AxesLabel]];
Show[plot /. {Thickness[x_] -> Thickness[0.01],
AbsoluteThickness[x_] -> Thickness[0.01], AxesLabel -> None},
Frame -> True,
FrameLabel -> MaTeX[al, Magnification -> fontsize/12],
FrameTicks -> {{MapAt[
Function[x, MaTeX[x, Magnification -> fontsize/12]],
LinTicks[ymin, ymax], {{All, 2}}],
StripTickLabels[LinTicks]}, {MapAt[
Function[x, MaTeX[x, Magnification -> fontsize/12]],
LinTicks[xmin, xmax], {{All, 2}}],
StripTickLabels[LinTicks]}},
PlotRange -> {{xmin, xmax}, {ymin, ymax}}
]]
You can use it to convert regular plots:
p = Plot[{Sin[x], Cos[x], x}, {x, 0, 2 \[Pi]}, PlotRange -> Full,
PlotTheme -> "Monochrome", AxesLabel -> {"x", "y"},
PlotLegends ->
Placed[LineLegend["Expressions",
LegendFunction -> Framed], {{0.16, 0.79}}]]

to LaTeX style
LatexPlot[p, 20]

I am not yet sure how to convert the legend, but I would think that you can use a similar approach.
Update:
For the legends, I think a manual approach is appropriate given that you have only three items:
p = Plot[{Sin[x], Cos[x], x}, {x, 0, 2 \[Pi]}, PlotRange -> Full,
PlotTheme -> "Monochrome", AxesLabel -> {"x", "y"},
PlotLegends ->
Placed[LineLegend[
MaTeX[#, Magnification -> 20/12] & /@ {"\\sin(x)", "\\cos(x)",
"x"}, LegendFunction -> Framed], {{0.21, 0.71}}]]
LatexPlot[p, 20]
You might want to manually adjust the plot range to create some free space for the legend.
