How do you iterate/walk a list of Vector2Int tiles around in a circle, that represent the border of a shape?

I'm trying to iterate over a List of Vector2Ints (Unity's built in struct). The list exists for every province (a shape of tiles) in my game. The list the borderTiles of that province, it contains locations of tiles represented as only a position*, that are on the border of that province (not surrounded by "friendly" tiles from all 4 directions).

*since additional information about the tiles can be looked up through a dictionary only from that position.

I've chosen that the algorithm should start at the tile with the smallest X value (if there are multiple tiles with the same X, choose the one with the smaller Y).

Now I need to iterate/walk from that tile counter clockwise, over all the border tiles, basically going around in a loop/circle all the way to the starting tile.

I've tried to implement a general algorithm to walk the tiles, but there always seems to be a certain scenario that breaks it.