To make the marinade, squeeze the juice of the oranges and lime and stir in the minced garlic, oregano, granulated garlic, granulated onion, olive oil, salt, and pepper.
Remove the skin 3/4s of the way and then make several 1 inch deep cuts using a sharp knife into the pork shoulder.
Pour the marinade under the pork skin and then season generously with salt and pepper under and over the skin. Don't pour the marinade over the skin otherwise it won't end up crispy.
Place the skin back in place, cover with aluminum foil and place it in the fridge for a minimum of 4 hours.
Preheat oven to 350 degrees F.
Let the pork shoulder come to room temperature and then place it in the oven for 25 minutes per pound or until skin is crisp and the pork is fully cooked through.
Slice the pork into thin medallions.
Spread mustard on the bread and top with thinly sliced pickles, pork medallions, ham, and Swiss cheese.
Brush some butter over the top of the bread and then toast for 5-10 minutes.