Try
data = {{4, 1.2}, {3, 15.4}, {2, 6.6}, {1, 19.5}, {0, 5.5}, {-1, 1.8}, {-2, 11.1}, {-1, 6.3}, {0, 3.5},
{1, 15.3}, {2, 11.1}, {1, 4.1}, {0, 14.9}, {-1, 2.4}, {-2, 10.1}, {-3, 7.3}, {-4, 10.8}, {-3, 7.2},
{-2, 10.9}, {-1, 9.6}, {0, 17.3}, {1, 4.4}, {2, 10.0}, {3, 9.8}, {4, 0.4}, {3, 15.2}, {2, 14.5}, {1, 11.8},
{0, 3.1}, {-1, 19.6}, {0, 1.9}, {1, 14.1}, {2, 17.8}, {3, 8.60}, {4, 0.559}, {5, 13.0}, {6, 10.6}};
positions=Flatten[Position[Map[If[#[[1,1]]<#[[2,1]]&&#[[2,1]]>#[[3,1]],1,0]&,Partition[data,3,1]],1]];
temp=data;
deltas=Flatten[{positions[[1]],Rest[positions]-Most[positions]}];
solution=Append[Map[(head=Take[temp,#];temp=Drop[temp,#];head)&,deltas],temp];
solution=={{{4, 1.2}, {3, 15.4}, {2, 6.6}, {1, 19.5}, {0, 5.5}, {-1, 1.8}, {-2, 11.1}, {-1, 6.3}, {0, 3.5},
{1, 15.3}}, {{2, 11.1}, {1, 4.1}, {0, 14.9}, {-1, 2.4}, {-2, 10.1}, {-3, 7.3}, {-4, 10.8}, {-3, 7.2},
{-2, 10.9}, {-1, 9.6}, {0, 17.3}, {1, 4.4}, {2, 10.0}, {3, 9.8}}, {{4, 0.4}, {3, 15.2}, {2, 14.5}, {1, 11.8},
{0, 3.1}, {-1, 19.6}, {0, 1.9}, {1, 14.1}, {2, 17.8}, {3, 8.60}, {4, 0.559}, {5, 13.0}, {6, 10.6}}}
which returns
True
There should be a simpler cleaner way than this.