I’m not sure about native Theano code, but Lasagne flips the filters by default to compute a real convolution (instead of a correlation). Maybe it’s also the default in Theano? I couldn’t figure it out that fast. 
To transfer Lasagne weights to Pytorch you have to flip them back. You can have a look at my approach of transferring weigths 17 for the ProgGAN paper.
Important line:
conv_layer.conv.weight.data = torch.FloatTensor(np.copy(conv_w.W.get_value()[:, :, ::-1, ::-1]))

Could you try flipping the kernels and run the code again?