Season beef lightly with salt and pepper; warm 2 Tbsp. oil in a large, heavy skillet over medium-high heat. Add beef; brown on all sides, about 5 minutes. (Divide oil and cook in batches to avoid crowding, if needed.)
Transfer beef to a slow cooker; pour off all but 1 Tbsp. fat from skillet. Add onion to skillet. Cook over medium-high heat until slightly softened, about 3 minutes. Stir in flour and cook for 2 minutes. (Mixture will be dry.)
Add broth; bring to a boil on high heat, scraping up cooked bits. Pour mixture over beef in slow cooker, cover and cook on high for 4 hours or on low for 6 hours.
Before serving, warm 1 Tbsp. oil in a saucepan over medium-high heat. Add celery, walnuts and zest. Cook, stirring often, until blended, 3 to 5 minutes. Stir into stew.