Replace characters using multiple dependent regular expression substitutions
I can't say it would be more Pythonic, but we can reduce your number of re.sub() calls from 3 down to 2.

First, we just eliminate all of the invalid letters:

valid_chars = re.sub('[^-/_ 0-9a-zA-Z]', '', field_value)


Then, replace occurrences of one or more '-', '/', '_' and ' ' characters with a single underscore, convert to title case, and return:

return re.sub('[-/_ ]+', '_', valid_chars).title()


Since the try ... except block is unconditionally re-raising the raised exception, it is not really adding much, and could probably be eliminated.

When using a regex over and over, it is usually more efficient to compile the regular expression once, and then reuse the compiled regular expression object.

INVALID_CHARS = re.compile('[^-/_ 0-9a-zA-Z]')
UNDERSCORE_CHARS = re.compile('[-/_ ]+')

def correct_invalid_char(field_value):
    """
    Correct field values by replacing characters, removing non-alphanumeric,
    non-numeric characters, duplicate underscores, and changing to title case.
    """

    valid_chars = INVALID_CHARS.sub('', field_value)
    return UNDERSCORE_CHARS.sub('_', valid_chars).title()


A quick "Hello world"-ish test:

&gt;&gt;&gt; correct_invalid_char('Hello EMPEROR / ***WoRlD_-=-_lEaDeR***')
'Hello_Emperor_World_Leader'