Two quick hints:

Do put data through the network and see where intermediate results differ.
You don’t rely on some magic padding done by Keras, do you? PyTorch won’t do that automatically.

Regarding the first point: if you have a self-contained script somewhere on github, you’d probably have someone looking at it. In my experience, looking at intermediate results can be much more efficient than just trying to stare down the code.
Best regards
Thomas