Step 1Combine the grapefruit juice, brown sugar, Dijon, orange liqueur, salt and butter in a small saucepan. Heat to simmering. Reduce the heat to low and simmer until the sauce is reduced to 1 cup, about 10 minutes. Let the marinade cool.
Step 2Remove the skin from the ham and trim the fat so that only a thin layer remains. Make 1-inch cuts over the surface of the ham and fill each with a sliver of garlic and sprig of rosemary. Place the ham in a large resealable plastic bag and pour the marinade over it. Refrigerate the ham overnight, turning the bag several times so all sides marinate evenly.
Step 3Heat the oven to 325 degrees.
Step 4Remove the ham from the marinade and place it on a rack in a shallow baking pan. Cover the fat portion of the ham with foil. Bake the ham until a thermometer inserted in the ham registers 130 degrees, 10 to 15 minutes per pound, about 3 1/2 hours. Baste the ham with marinade every 20 minutes. Remove the foil from the ham during the last 1 1/2 hours of roasting so the top of the ham will become a golden brown.
Step 5Set the ham on a platter and let it stand 15 minutes before carving. Garnish the platter with sprigs of rosemary and grapefruit slices.