Combine onion, liquid smoke flavoring, Worcestershire sauce, garlic, chili powder, celery seed, chipotle pepper, and salt in a bowl until marinade is smooth. Place brisket in a shallow glass dish and pour marinade over brisket. Cover dish with plastic wrap and refrigerate, 8 hours to overnight.
Heat oil in a large skillet over medium-high heat. Scrape onion from the brisket, reserving onion and marinade. Cook brisket in the hot oil until browned on all sides, about 10 minutes. Transfer brisket to a slow cooker on Low.
Pour marinade with onion and vinegar into the skillet and bring to a boil while scraping the browned bits of food off of the bottom of the pan with a wooden spoon. Cook mixture until onion is tender and liquid is reduced by 3/4, 5 to 10 minutes.
Mix vinegar-onion mixture, tomatoes, water, and bay leaves into slow cooker.
Cook on Low until brisket is very tender, at least 6 hours.
Strain liquids from slow cooker into a saucepan; bring to a boil. Whisk enough flour into liquid until desired gravy consistency is reached, about 5 minutes.
Shred brisket with a fork and serve with gravy and tomato-onion mixture.