FWIW:
Ccould it be the smoothing function reparameterizes the curves?
I’m not sure what “perimeterOffset.Domain.Min” returns, but is that is a parameter, then it will not be of much use if the curve was indeed reparameterized.
In that case I guess you need to store the 3Dpoint location of the original seam and evaluate the parameter of the smooth curve at that 3D point location to set the new seam parameter.
I don’t know how store the 3Dpoint location of the original seam neither set the seam parameter after smoothing funcion.
The function to smooth the curve isn’t mine, and I don’t know that it does exactly, but, when I apply the function the seam is relocated, Inside the code, I haven’t seen nothing about moving the seam point.
This will probably perform 1) and 2) internally but for the sake of code readability you could just get the PointAtStart or PointAtEnd properties of the curve.