SAUCE: In a medium saucepan over medium-high heat, melt butter. When bubbling, add flour. Reduce heat slightly and cook, stirring, until roux is pale blonde and smells nutty. Slowly add milk and cream, whisking to incorporate. Run a rubber spatula around saucepan edges to remove any flour clumps. Bring to a gentle simmer, and cook 10 minutes or until thickened. Add Gorgonzola, pepper, nutmeg, and salt, stirring until cheese melts.
CASSEROLE: Preheat oven to 350°F. Cook spaetzle in well-salted boiling water in a large stockpot according to package instructions, until just shy of al dente. Drain, cover, and set aside.
In a skillet over medium heat, melt butter and sauté shallot until soft. Add ham and Swiss chard. Reduce heat slightly, cover, and cook until chard wilts. Pour off excess liquid, and combine ham and chard with sauce and cooked spaetzle.
Pour mixture into a lightly oiled 2-quart casserole dish and top with grated Parmesan and black pepper. Bake 35 minutes. Let cool 5 to 10 minutes before serving.