Heat oven to 375°. In a large Dutch oven over medium-high heat, brown ribs in oil (in batches if necessary), about 2 minutes per side. Remove to a plate. Lower heat to medium and saute onions and garlic until soft, about 5 minutes. Add parsnip and celery; cook 5 minutes. Add tomato paste and cook an additional 3 minutes. Add wine, port, sugar, cranberries, thyme, bay leaf, and peppercorns. Cook until liquid is reduced by half, about 30 minutes. Add stock, bring to a boil, and cook about 5 minutes. Return ribs to the pan and cover tightly; bake 3 hours. Let cool slightly, then remove ribs from liquid, separate meat from bones and cartilage, and reserve meat (discard bones and cartilage). Pass vegetables and liquid through a sieve or a double layer of cheesecloth to separate liquid from solids, discarding solids. Skim oil from sauce and discard. Return liquid to stove and heat gently 5 minutes. Season with salt and pepper. Serve meat with sauce.