Here is my implementation of the IsIsogram() method:
bool FBullCowGame::IsIsogram(FString Word) const {
// treat 0 and 1 letter words as isograms
if (Word.length() <= 1) { return true; }
TMap<char, bool> LetterSeen; // setup our map
for (auto Letter : Word) { // for all letters of the word
Letter = tolower(Letter); // handle mixed case
if (LetterSeen[Letter]) { // if the letter is in the map
return false; // we do NOT have an isogram
}
else { // otherwise
LetterSeen[Letter] = true; // add the letter to the map as seen
}
}
return true; // completed the loop without any issues, which means we DO have an isogram
}
I did it with the knowledge I have, rather than searching things up. I think I did well. 
EDIT: turns out I did exactly the same as Ben. The only difference is that I left some comments in and added another one for clarification. But it’s already obvious what’s going on, so I can remove the comments now…