Create a second dictionary:
Dictionary<String, List<String>> reversed;
The key in this dictionary will be the lowercase version of the value from the original dictionary. The list of strings in the value is because you can have mulitple keys in the original dictionary with different keys but the same value. Whenever you insert an entry into the original dictionary, you do so again for the reversed dictionary.
When you get the value from this dictionary, you can go over the list of strings to lookup values in the original dictionary and check if they are uppercase or lowercase.