Each time you use ConvertTo-Html, you are creating a new table. That's why the widths are not consistent.
Get all of your results for the table into a single variable, then convert it to html once. That will create a single html table, with one header, and consistent widths.