Soak ham in cold water, overnight, about 12 hours, changing the water occasionally. (For 2-year old cured hams, soaking for an extra 12 hours, changing the water occasionally, is recommended.)
Preheat oven to 450 degrees F and lightly grease a 9 by 13-inch baking dish.
Toss the carrots, parsnips, potatoes, turnips, beets, and garlic cloves in a large bowl with 2 tablespoons of the olive oil. Season the vegetables with salt and pepper, tossing to coat. Arrange the vegetables in the baking dish and roast until tender, about 40 minutes. Remove from the oven and set aside.
Heat the remaining 2 tablespoons of olive oil and the butter in a large skillet over medium-high heat. Add the cabbage quarters and cook until slightly wilted and golden. about 2 to 3 minutes per side. Add the onions, and cook until wilted, about 2 more minutes. Remove the onions and cabbage from the skillet and toss with the roasted vegetables in the baking dish.
Heat a medium skillet over medium-high heat. Add the ham pieces, in batches, cooking just until the edges begin to curl, 1 to 2 minutes. Toss the seared ham pieces in with the vegetables. In a small bowl, whisk together the cider vinegar and the sugar, stirring to dissolve the sugar. Add the chicken stock, and vinegar mixture to the vegetables.
Return to the oven and bake 15 to 20 minutes, stirring occasionally, or until the ham is cooked through but not dried out. Shred any large pieces of ham and serve warm.