For the hash browns: Preheat the oven to 250 degrees F.
Grate the onion on the largest holes of a box grater into a large bowl. Grate the potatoes and put in a strainer lined with cheesecloth or a kitchen towel. Squeeze the liquid from the potatoes, then add the dry potatoes to the bowl with the onions. Season with salt and pepper. Add the herbs and mix until well combined.
Heat 2 tablespoons oil in a medium cast-iron skillet over medium heat. Drop 1/4 cup of the potato mixture into the skillet, pressing down lightly with a spatula. Repeat until there are 4 hash browns in the skillet. Cook until golden brown on the bottom, 5 to 7 minutes, reducing the heat to medium low if they start to brown too quickly. Flip and cook until golden brown, 5 to 7 minutes more. Transfer to a baking sheet and keep warm in the oven. Repeat the process with the remaining 2 tablespoons olive oil and remaining potato mixture.
For the cheesy eggs: In a medium bowl, whisk together the milk and eggs and season with salt and pepper.
Melt the butter in a medium nonstick skillet over medium heat. Lower the heat and add the egg mixture. Using a heatproof rubber spatula, push the eggs toward the center of the skillet and let the liquid run out. Cook, continually moving, until just set, about 2 minutes. Drop 2 tablespoons of the garlic-herb cheese into the middle. Gently fold the cheese into the warm eggs.
Divide the hash browns among 4 plates. Top each with some cheesy eggs and sliced avocado. Dollop each portion of eggs with 1 tablespoon of the remaining garlic-herb cheese. Serve immediately.