First thing, good job to simplify the stuff you find on the internet. I often do this, too, when I need to look at code from others.
You are not using the same weights with this. The random init for the second will be different than the one for the first because you not re-seeding after instiatiating the first.
In this case, if I copy the manual seed to before the second network is instantiated, I actually do get the same results.
Now this is also good luck because apparently you are creating the modules in the exact same order in both networks. This can easily break through refactoring and in this case it is safer to try to copy the state_dict of one of them to the other (take the state dict, rename the keys as needed, load into the other model) to compare. For things with batch norm, one also needs to keep in mind that running it updates the running statistics in training mode.
Best regards
Thomas