sedGNU sed 81 74 73 Bytes
Includes +1 for -r
s/\b./\u&/g :;s/.(And?|A[st]?|The|By|But|[FN]or|In|O[fnr]|To|Up) /\L&/;t The first line capitalizes the first letter of every word. The second switches all of the required words back to lowercase.