I want all characters in a TextBlock to be displayed in uppercase
How about a Converter that converts your text to uppercase. This way you original text stays unchanged.
How to use IValueConverter in Binding of WPF