Cook macaroni in salted water - whole wheat usually takes 7-9 minutes. Leave al dente as the mac will absorb cheese sauce as it cooks after prep in the oven. Add broccoli to boiling water in the last minute of cooking and drain well.
While pasta is boiling, melt butter in a separate pan and whisk in flour and S&P if desired. Once the butter and flour have been combined, add the milk all at once and mix well. Cook and whisk until slightly thickened and bubbly. Add 1.5 C of cheddar, Parmesan, and cream cheeses. Stir in until melted.
Add in cubed ham, broccoli and macaroni.
Transfer to casserole dish (or leave in same pan if it’s oven proof), and bake at 350 degrees for 25 minutes until hot and bubbly. Take out and place tomato slices on top. Sprinkle with S&P and remaining cheddar. Add a little more Parmesan if desired.
Return to oven for 5 minutes and let stand 10 min or so before serving. Serve with a side of cooked frozen spinach if desired. Enjoy!