The msgp encoding used by Algorand is canonical. If the two implementations gives you different outcomes, then at least one of them would not work correctly with Algorand.
To complement @tsachi’s answer, my guess s that most likely one of the field changed.
For example, everytime you run most of the examples in the documentation developer.algorand.org, it will query algod for new parameters.
These parameters include the first valid round that changes every 5s.