Clean potatoes and pat dry. Place on microwave safe plate and microwave 5-10 minutes, or until soft to the touch. Set aside.
Wash and peel carrots. Grate and set aside. Slice onion very thinly.
In medium saucepan, melt butter with olive oil over medium heat. Add sliced onion, shredded carrots, and minced onions and minced garlic. Cook for 5 minutes, or until onion is clear. Watch carefully, but stir only at end of sauté.
Lower heat to medium-low, and stir in spices. Stir for a minute then stir in flour. Stir an additional minute to cook the raw taste out of flour. (can use 1 T cornstarch instead of flour.).
Add milk to onion mixture, slowly bringing sauce to a simmer. Cook for 5 minutes, or until thickened. Turn heat to low and add cheese. Stir until combined, then turn of heat, leaving pan on stove.
Grease or spray 1 1/2 quart casserole. Thinly slice potatoes, leaving skin on. Place 1/4 potato in dish. Sprinkle with 1/3 cubed ham. Top with 1/4 potato slices. Pour 1/2 sauce over. Continue by toping with 1/4 potato, 1/2 cubed ham, remaining potato slices and cover with remaining cheese sauce. Cover and refrigerate, 4 hours or overnight.
Preheat oven to 350 degrees. Cover dish with foil, and bake for 30 minute Remove foil and sprinkle with an addition cup of shredded cheese and 2 tablespoons of parmesan cheese. Bake 15 minutes, or until cheese melted and lightly browned.