You can use a custom script as long as it inherits from CharacterSelectionScreen
public class MyCustomCharacterSelectScreen : CharacterSelectionScreen {
}
from there you're free to override any of the methods used within CharacterSelectionScreen as you see fit.
You'll find character selection in the OnCharacterSelectionAllowed method. In there, you can follow the comments for each block of code. I'd recommend just copying the method and pasting it in your custom select screen, replacing virtual with override.
public override void OnCharacterSelectionAllowed(int character Index, int player) {
}
But in short, I'd change the this.GoToNextScreen() to some new method that is something like this.StartCostumeSelection() if you're having the user select costume on the same screen, or otherwise if its on a new screen then just alter the Next Screen to be the costume select screen. Most typically, you'd be on the same screen, so it's just best to update/add an if check that doesn't go to next screen until the costume has been selected.
In terms of handling costume selection, there's no one way to do that, but I'd recommend starting with displaying a panel that renders an option for each costume type in an array for the selected character. Then making it so directional changes change the highlighted option, and pressing Button1 selects that outfit array. Then you can store which outfit was selected and use that to help set the player character and its set costume option.