In a large saucepan, cover the beets with cold water by l inch. Stir in 1/4 cup of the vinegar and 2 tablespoons salt. Bring to a boil, lower the heat, and simmer, covered, until very tender, about 30 minutes.
Drain, cool, and peel the beets. Dice the beets and set aside.
Heat the butter in a large pot over medium heat. Add the celery, onions, garlic, and caraway seeds and cook, covered, stirring occasionally, until soft, about 8 minutes. Add the cabbage, cook, stirring until wilted, about 3 minutes.
Tie the parsley sprigs, thyme, and bay leaf together with a piece of kitchen twine and add to the pot with the beets, tomatoes with liquid, cooked meat and broth.
Bring to a boil, lower the heat, and simmer, covered, for 10 minutes to bring the flavors together. Stir in the remaining 3 tablespoons vinegar and the remaining 2 teaspoons salt, season with pepper to taste.
To serve divide among warm soup bowls, top with dollops of the sour cream and sprinkle with the dill.
Cook's Note: I like to slow cook a roast in the slow cooker overnight and make my own broth for this recipe.