You can simplify your Filter by combining the And's:
<ogc:And>
<ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyName>tt_grid</ogc:PropertyName>
<ogc:Literal>818</ogc:Literal>
</ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>tt_grid</ogc:PropertyName>
<ogc:Literal>159174</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyName>y15plus_t_2014</ogc:PropertyName>
<ogc:Literal>2.2</ogc:Literal>
</ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>y15plus_t_2014</ogc:PropertyName>
<ogc:Literal>7.2238</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
</ogc:And>
which may fix the issue, but you probably want to use a Between filter:
<ogc:And>
<ogc:PropertyIsBetween>
<ogc:PropertyName>tt_grid</ogc:PropertyName>
<ogc:LowerBoundary><ogc:Literal>818</ogc:Literal></ogc:LowerBoundary>
<ogc:UpperBounadry><ogcUpperBoundary><ogc:Literal>159174</ogc:Literal></ogc:UpperBoundary>
</ogc:PropertyIsBetween>
<ogc:PropertyIsBetween>
<ogc:PropertyName>y15plus_t_2014</ogc:PropertyName>
<ogc:LowerBoundary><ogc:Literal>2.2</ogc:Literal></ogc:LowerBoundary>
<ogc:UpperBounadry><ogc:Literal>7.2238</ogc:Literal></ogc:UpperBoundary>
</ogc:PropertyIsBetween>
</ogc:And>
Finally if you have a large number of classes you might want consider using some maths functions to calculate the size of the point directly from the relevant property so you have jut N classes instead of N*M classes.