Position an oven rack in the center of the oven and preheat the oven to 325 degrees F. Place the pork shoulder on a parchment-lined baking sheet or plate and sprinkle generously with salt and pepper.
Preheat a medium Dutch oven with a tight-fitting lid over medium-high heat. Add 2 tablespoons olive oil and swirl to coat. Add the pork shoulder and brown on all sides, about 3 minutes per side. Remove from the pot and add the remaining tablespoon olive oil. Add the onions, sprinkle with salt and pepper and cook until softened, 3 minutes. Add the dried oregano, garlic, chiles de arbol and bay leaf and cook, stirring, 1 minute. Add the pork shoulder back to the pot fat-side up, then add the chicken stock, lime juice and orange juice, adding more stock or water if necessary to reach halfway up the meat. Bring to a simmer and cover the pot. Transfer to the oven and braise, basting with liquid every hour, until the pork shoulder is very tender and falling apart, 4 to 6 hours.
Remove the pork from the braising liquid and shred into large bite-sized pieces. Skim the fat from the braising liquid, then cook to reduce over medium-high heat to about 1 1/2 cups. Taste for seasoning and adjust with salt and pepper. Return the pork to the liquid, toss to combine, and keep warm.
Combine the mayonnaise and honey mustard in a small bowl and season with salt and pepper to taste. Split the rolls, then spread each with a scant 3 tablespoons of the mayonnaise mixture. Divide the Swiss cheese among the top and bottom rolls. Top the bottom rolls with the pickled red onions, pulled pork and ham. Close the sandwiches.
Heat a cast-iron skillet over low heat. In batches, transfer the rolls to the skillet and place another skillet on top. Cook until the bottom portions of cheese are melted, then flip the sandwiches and continue to cook until heated through and the cheese has melted. Serve.