Update: An alternative layout for the Callout
s:
combined = Transpose[{mydata, slopes}];
{top, left} = Pick[combined, #[[1, -1, 1]] < 9.9 & /@ combined, #]&/@{True, False};
{datatop, slopestop} = Transpose[SortBy[top, #[[1,-1,1]]&]];
{dataleft, slopesleft} = Transpose[SortBy[left, #[[1,-1,-1]]&]];
dL = MapIndexed[Callout[#, slopesleft[[#2[[1]]]],
{11, Rescale[#2[[1]], {1, Length @ dataleft}, {30, 90}]}, dataleft[[All,-1]][[#2[[1]]]],
LeaderSize -> {{Automatic, Automatic, 0}, {10, 0 Degree}}]&, dataleft];
dT = MapIndexed[Callout[#, slopestop[[#2[[1]]]],
{Rescale[#2[[1]],{1, Length @ datatop}, {1, 12}], 110}, datatop[[All, -1]][[#2[[1]]]],
LeaderSize -> {{Automatic, Automatic, 0}, {10, 90 Degree}}]&, datatop];
ListPlot[Join[dL,dT], ImagePadding -> {{Automatic,200},{ Automatic, 100}},
ImageSize->800, PlotRangeClipping->False]