Preheat the oven to 200C/gas 6/fan 180C. Put the milk, butter and flour in a medium pan and cook over a medium heat, whisking until thickened and smooth. Simmer for 1 minute. Take off the heat, season and add the nutmeg. Cool, stirring occasionally to stop a skin forming.
Put the spinach in a large heatproof bowl, pour over a kettle of boiling water and leave for 30 seconds. Drain into a colander, cool under the cold tap then squeeze it well to remove the excess liquid.
Spread a spoonful or two of the sauce on the bottom of a large ovenproof dish (about 30x20cm) and lay a third of the lasagne on top. Spoon over a third of the sauce and spread it out. Swirl a spoonful of pesto through the sauce with a knife and scatter over half the spinach with a third of the tomatoes, a few basil leaves and a third of the cheeses. Season with salt and pepper. Layer another third of the lasagne with a third of the sauce, a spoonful of pesto, the rest of the spinach, a third of the tomatoes and cheeses and some basil. Season.
Finish with a layer of lasagne, the last of the sauce, pesto, cheeses and the tomatoes, including those on the vine. Bake for 35-40 minutes until golden. Scatter with the last of the basil leaves and serve.