Heat oven to 325°F; place pork in a small covered baking dish.
Whisk orange juice, lime juice, garlic, cumin, oregano, and salt. Pour over pork; cover tightly.
Roast 2 1/2 to 3 hours, turning once, until about 195°F and easily pulled apart.
Rest 10 minutes; shred all pork and moisten with 1/4 cup roasting liquid.
Split rolls; layer each with mustard, Swiss, ham, warm pork, pickles, and a second Swiss slice.
Close; butter outsides. Put in preheated sandwich press or heavy skillet over medium.
Press 3 to 4 minutes per side until deeply crisp and center reaches 165°F, weighting skillet sandwiches with another pan.
Cut diagonally into 2 halves; serve immediately.