Preheat oven or grill to 300 degrees F (150 degrees C).
Place the ham in a large roasting pan.
In a small bowl, whisk together the ketchup, brown sugar, apple cider vinegar, Dijon mustard, Worcestershire sauce, honey, and black pepper.
Pour the barbecue sauce over the ham, coating it evenly.
Cover the ham with aluminum foil and bake for 30 minutes.
Uncover the ham and baste it with the sauce.
Continue baking for an additional 1-2 hours, or until the ham is heated through and the internal temperature reaches 145 degrees F (63 degrees C).
Let the ham rest for 10-15 minutes before slicing and serving.
Notes
For a sweeter sauce, add more brown sugar.
For a spicier sauce, add a pinch of red pepper flakes.
If you don't have fresh parsley, you can use 1 teaspoon of dried parsley.