Heat 3 tablespoons olive oil in a small skillet over medium-high heat. Add onion, salt, oregano, black pepper, and minced garlic; sauté 3 minutes or until onion is tender. Remove from heat; stir in orange juice and lime juice. Reserve 2 tablespoons juice mixture; cover and refrigerate. Combine remaining juice mixture and pork in a large zip-top plastic bag; seal. Marinate pork mixture in refrigerator at least 4 hours or overnight.
Prepare grill to medium-high heat.
Remove pork from bag; discard marinade. Place pork on grill rack coated with cooking spray; grill 15 minutes or until thermometer registers 155° (slightly pink), turning occasionally. Remove pork from grill. Cover loosely with foil; let stand 10 minutes. Cut pork into 16 thin slices.
Combine pickle, reserved 2 tablespoons juice mixture, mustard, and 2 teaspoons oil in a small bowl; stir until well blended.
Hollow out top and bottom halves of bread, leaving a 1/2-inch-thick shell; reserve torn bread for another use. Spread 2 teaspoons pickle mixture over cut side of each half. Arrange 4 pork slices, 2 ham slices, 1 cheese slice, and 1/4 cup spinach on each bottom half of bread; cover with top halves.
Heat a large nonstick grill pan over medium-high heat. Coat pan with cooking spray. Add sandwiches to pan. Place a cast-iron or heavy skillet on top of sandwiches; gently press to flatten. Leave skillet on; cook 4 minutes on each side or until cheese melts and bread is toasted.