For the relish: Put the garlic, pine nuts, serrano and some salt in a mortar and pestle and mash to a chunky, pesto-like consistency. Add the cilantro and continue to mash; the pesto should be very coarse.
Put the avocados and lime juice in a bowl and sprinkle with salt and pepper. Gently fold in the pesto until just combined, being careful not to mash the avocado too much.
For the crema: Heat a grill to high. Toss the tomato halves with some canola oil and season with salt and pepper. Grill until the tomatoes are charred and softened, turning once or twice, about 5 minutes total.
Combine the grilled tomatoes, vinegar and chipotles in a food processor and pulse a few times to combine. Add the garlic, onions, cilantro, oregano and some salt and pepper and pulse until slightly smooth.
Put the yogurt in a medium bowl and swirl in some of the salsa, being careful not to stir it in completely.
For the slaw: Put the lemon juice, orange juice, honey, mustard, basil and some salt and pepper in a blender and blend until smooth. With the motor running, drizzle in the canola oil until emulsified.
Combine the Napa cabbage, red cabbage and carrot in a large bowl; add half of the dressing and toss to coat. Season with salt and pepper; add more dressing if needed, reserving a little for fish.
For the rub: Combine the ancho powder, cinnamon, cumin, salt, brown sugar and black pepper in a bowl. Mix to blend.
For the fish: Brush the top of the fish filets with canola oil, and sprinkle them with salt, pepper and about 3 tablespoons of the spice rub. Let stand for 5 minutes, then grill the filets, spice-side down, over direct heat until the fish is lightly charred and comes away from the grill easily, about 2 minutes. Flip and cook another 2 minutes to sear on the reverse side. Move the fish over indirect heat, cover the grill, and cook until the fish is just cooked through, another 3 to 4 minutes; the fish should be just firm when squeezed lightly on the sides. Remove the fish to a platter and let rest for a few minutes.
While the fish rests, grill the tortillas over direct heat until slightly charred and just warm, about 5 seconds per side. With a fork, flake the fish into large chunks. Drizzle with the remaining slaw dressing and top with cilantro leaves.
Serve the fish family-style with the tortillas and butter lettuce (for wrapping), and the avocado relish, tomato crema, and cabbage slaw in bowls on the side.
Store extra rub in an airtight container in a cool, dark place for up to 6 months.