The C# is correct actually The reasons are discussed above.
with Python version the result is wrong because rhinocommon transforms need to multiple backwards to be like grasshopper transforms. You won’t notice the wrong result with move (unless each move has different directions) but throw some other stuff in there like scale and rotate and the wrong results are clear.
C# version is correct in result because the C# changes
“result *= t” to “result = t * result” which is the correct order to multiple to get the result GH expects.
C# versions partial results are correct as well: When used as a list in transform component you get the correct positions step by step with the order of our transforms from GH, with python version you do not.