Fair enough! The issue with the marker size is that you are using characters (i.e. a font), and the scaling number doesn't affect that. Here is a slightly simplifed version that does what you want.
ListLinePlot[{Reverse[dataPairs1, 2], Reverse[dataPairs2, 2]},
Frame -> True, PlotRange -> {{0, 20}, {0, 14}},
FrameLabel -> {Style["Vb/\!\(\*SuperscriptBox[\(cm\), \(3\)]\)", 12],
Rotate[Style["pH", 12], -90 Degree]},
PlotLabel ->
Style["Titration of weak acids with sodium hydroxide", 16, Bold,
FontFamily -> Default, FontColor -> Black],
PlotStyle -> {Red, Blue},
PlotMarkers -> {{Graphics[Disk[]], 13}, {Graphics[Rectangle[]], 12}},
Mesh -> All, MeshStyle -> {PointSize[0.01], Default},
GridLines -> {gridLinesF[], gridLinesF[]},
PlotLegends ->
Placed[
LineLegend[{"Acetic acid", "2-chloroaniline"},
LegendFunction -> (Framed[#, FrameMargins -> -2,
Background -> Yellow, FrameStyle -> Directive[Red]] &),
LegendLayout -> "Row", LegendMarkers -> Automatic,
LegendMarkerSize -> {{30, 13}, {30, 12}},
LabelStyle -> {FontSize -> 10}], {Right, Bottom}]]