I would try the following two things as initial trouble shooting:

Can you try initializing with a different random seed? This will rule out that you did not just get an unlucky split of your data.
Can you try using a larger validation set? I would try a 70/30 split, just to ensure that the distribution of the val set is closer to that of the training set.

Also, what optimizer are you using? There is nothing obviously wrong with your choice of loss, but I find that using MSE with sum or average reduction depends on if I am using SGD or something like Adam.