Validation loss or model evaluate
First of all, you can not cheat on the test set, and choose the model so that it gives the best results on the test. Validation is meant to be used for that intention, and the test is only there to check validation and test are getting along each other.
You did not mention the size of the training, validation, and test. The size of the data you use is very important to be as big enough to represent the real distribution of the data, in training, validation, and the test.
On the other hand, the way you sample the data should be done in a way, that three sets have the same distribution. 
Last, by not least, you are comparing two results which differ about 0.0002 in MSE. I do not believe it gives you good judgment on which one is better.
I have a Gated Reccurent unit (GRU) model and I made two versions of it each are slightly different. When I ran both, Version 1 gave me a  validation mean squared error (MSE) of 0.0013, while Version 2 gave me 0.0015. This means Version 1 is a better model. But when I ran model.evaluate(X_test,y_test) with the test dataframe, Version gave me an MSE value of 0.0027 while Version 2 gave me 0.0018.
My question is which version is considered better, the version which gives a better Validation MSE or the model that gave a lower MSE when using the Test dataframe for predicting
Thank you.