Grate the zest from the limes into a large freezer-weight zipper-lock bag. Cut the limes in half and squeeze the juice of 1 lime into the bag. Reserve the remaining lime. Stir into the bag ¼ cup of the oil, 1 tablespoon chili powder, 1 minced garlic clove, ½ teaspoon salt, ¼ teaspoon pepper and 2 tablespoons cilantro. Pour a few tablespoons of marinade into a small zipper-lock bag, seal and refrigerate. Add catfish to the large bag, seal and turn to coat completely. Refrigerate for 1 hour.
Heat the grill as directed.
For the salsa, mix salsa, chipotle sauce, juice from the reserved lime, ¼ teaspoon of remaining black pepper, remaining minced garlic clove and remaining 2 tablespoons cilantro. Finely chop 3 tablespoons of onion, and stir into the salsa. Cover, and set aside.
Mix remaining ¼ cup olive oil, remaining 1 tablespoon chili powder, remaining salt and remaining pepper in a cup. Cut remaining onions lengthwise into quarters, leaving the root end intact to hold the quarters together as they grill. Core, seed and quarter bell peppers. Brush vegetables with seasoned oil, and set aside.
Remove catfish from marinade, pat dry and dip in remaining seasoned oil.
Brush the grill grate, and coat with oil. Grill vegetables and catfish strips until vegetables are tender and the fish just cooked through, 3 to 4 minutes per side.
Meanwhile, wrap stack of tortillas in foil, and warm over a very low-heat area of the grill, 3 to 4 minutes per side.
Build fajitas by filling each tortilla with catfish, vegetables, chipotle salsa, vinaigrette and sour cream.