Preheat the oven to 350 degrees.
Spray a 2 quart casserole dish with cooking spray.
Boil or steam the fresh Brussels Sprouts for 5 minutes to get them tender crisp. Drain and place in the prepared pan.
Chop the bacon into pieces and cook in a large skillet over medium high heat. Cook for 5 minutes or until bacon is browned. Remove from skillet and drain on paper towels.
Add the onion to the pan with the bacon grease and saute for 3-4 minutes or until the onion begins to soften.
Add in the garlic and cook for 1 minute.
Add the flour and whisk into the onion and garlic. Let cook for 1 minute.
Whisk in the half and half, cream cheese, salt, and pepper. Bring to a boil, whisking constantly, until thickened.
Pour over top of the Brussels Sprouts in the baking dish and mix to combine.
Bake for 30 minutes.
Remove from oven and top with the cheddar cheese and bacon.
Return to the oven for 8-10 minutes or until cheese is melted.