I ended up fixing it by changing the grid structure.
If before was:
<Grid>
<Row>
<Row *>
<Column *>
<Column *>
<Column *>
<Column>
<Content>
<TreeItems Row:1 Colum:0-3>
</Grid>
<TreeItems>
<Grid>
<Column *>
<Column *>
<Column *>
<Content>
</Grid>
</TreeItems>
By separating the main grid into two:
<Grid>
<Row>
<Row *>
<Grid Row:0> <!--The header now has its own grid -->
<Column *>
<Column *>
<Column *>
<Column>
<HeaderContent>
</Grid>
<Content>
<TreeItems Row:1> <!-- Note that now there is only one column so I don't need to declare it -->
</Grid>
<TreeItems>
<Grid>
<Column *>
<Column *>
<Column *>
<Content>
</Grid>
</TreeItems>
I still don't understand whats happening on the first option and my main take away is try not to declare a grid with columns and rows at the same time.