Put the chicken breasts in a medium saucepan with the onion, bay leaves and wine. Pour over just enough water to cover, around 200ml. Put a lid on top and bring to a gentle simmer. Poach gently for 15 mins or until the chicken is just cooked. Transfer the chicken to a board and strain the liquid into a jug.
Melt the butter in a large non-stick saucepan over a medium heat. Stir in the flour with a wooden spoon and cook for about a minute. Gradually add the milk, a little at a time, stirring well between each addition to ensure the sauce stays smooth. Once all the milk has been added, stir in the reserved cooking liquid and continue cooking for a further 2-3 mins. Adjust the seasoning to taste. Heat oven to 200C/180C fan/gas 6.
Cut the chicken into small chunks and stir into the saucepan. Add the ham and spinach and cook until the spinach has wilted. Spoon a third of the chicken mixture into the base of a 3-litre lasagne dish (about 26 x 18cm). Top with a third of the lasagne sheets. Repeat the layers twice more, ending with lasagne. Scatter the mozzarella and Parmesan on top and season with black pepper. Can be frozen at this stage (see below). Bake for about 25 mins or until the lasagne is tender, the topping is well browned and the filling hot.