Preheat the oven to 170-200 degrees. Set aside a large baking sheet.
In a large bowl, whisk the half & half, egg yolks, flour, sugar, vanilla, cinnamon, orange zest (optional), and salt together. Whisk well to combine. (It’s ok to have a few lumps.)
Pour batter into a large rectangular casserole dish.
If using an unsliced bread, use a serrated knife to slice the loaf into 1-inch slices. (About 12 thick slices.)
Set a large skillet over medium heat or heat an electric griddle to 350 degrees. Add 1-2 tablespoons of butter.
Soak 2-3 pieces of bread in the egg mixture for about 1 minute, flipping to coat. The bread should soak just long enough to be saturated, but not dissolving.
Using a spatula, carefully move the soaked bread to the hot skillet or griddle. Fry the French Toast slices for 2-3 minutes per side, until golden brown. (If they are cooking too fast, lower the heat to medium-low, to make sure the inside is cooked through the middle without burning the outside.)
Move the French Toast onto the baking sheet and place in the oven to keep warm.
Wipe the skillet or griddle out with a clean paper towel and add more butter.
Repeat with the remaining slices of bread until all of the French Toast is cooked. Place each batch in the oven to keep warm.