Preheat your oven to 350°F (175°C).
In a large skillet over medium-high heat, melt the butter. Add flour and cook, stirring constantly, for about 1 minute.
Gradually add milk, whisking until the mixture is smooth and thickened. Add salt and black pepper to taste.
Layer half of the potatoes in a greased 9x13 inch baking dish. Sprinkle with half of the onions and cheese. Pour over half of the milk mixture.
Repeat layers, ending with the remaining cheese on top.
Place pork chops over the potato mixture and cover the dish with aluminum foil.
Bake in the preheated oven for about 1 hour, or until the potatoes are tender and pork chops have reached an internal temperature of 145°F (63°C).
Remove the foil during the last 15 minutes of baking for a golden top. Let it rest for a few minutes before serving.