Was able to figure out a solution inspired by the "Filled Down" command from horseyride's answer.
Starting here I had to add back in the null value in cells to allow the filled down command to work. I only added the null value where I needed based on the text contained in C001.
BlankToNull = Table.TransformRows(#"Renamed Columns", each if Text.Contains(_[C001], "Strata") then Record.TransformFields(_, {{"C002", each null}}) else _),
ExpandRecord1 = Table.FromRecords(BlankToNull),
After that I allowed the Fill Down command to populate all the null cells with values.
FilledDown = Table.FillDown(ExpandRecord1,{"C002"}),
Now I needed to clean the cells I didn't want to have the filled data in.
WhiteOut = Table.TransformRows(FilledDown, each if Text.Contains(_[C001], "Strata") and not Text.Contains(_[C001], "Total") then Record.TransformFields(_, {{"C002", each ""}}) else _),
ExpandRecord2 = Table.FromRecords(WhiteOut)
I ended up with my desired result. Key takeaway for me was how to transform multiple cells in a column based on the values of cells in other columns. Accomplished this using the Table.TransformRows() command and passing through arguments such as Text.Contains().