Thanks guys, but my head is melted here.
How do you mean get the layer object?
According to your code in the OP, you already have each LayerTableRecord Object, when you iterate the LayerTable via vlax-For... You just used the 'LayerName' symbol for same.
You were then conditionally storing the extracted layer name (string) from the LayerTableRecord Object to the 'LayerFreezeList' variable, and sorting, etc.
Instead, you should be conditionally storing the LayerTableRecord Object to your list, and then iterating that list using foreach, as shown above.
HTH