Melt butter in a large pot over medium heat. Add onion, celery, and garlic. Sauté until softened (about 5 minutes).
Sprinkle flour over the vegetables and stir continuously for 2 minutes to form a light roux.
Slowly whisk in milk, cream, and stock to avoid lumps. Bring to a gentle simmer.
Stir in sherry, Worcestershire, hot sauce, Old Bay, salt, and pepper. Simmer for 10 minutes until slightly thickened.
Gently fold in crab meat and roe (if using). Simmer for another 5 minutes—do not boil vigorously to preserve crab texture.
Taste and adjust seasoning. Ladle into bowls, garnish with parsley, and serve with crusty bread or oyster crackers.