Can you post the first 20 or so lines of that CSV?
Or alternately, run the proc import code and then copy from the LOG the data step generated and then paste into a text box opened on this forum with the </> icon.
Proc Import only uses a very few lines of data to set types. I suspect that none of the grades in the first few lines are the ones with the A+ or such. If you see the INFORMAT for that variable to show something like:
Informat Letter_grade $1. ;
then SAS set the property to one character because that is what it saw in the first few lines. If that is what happened the easy fix is to either add a statement:
Guessingrows=max;
to proc import, which will force the procedure to examine more rows or copy the data step to the editor, clean up things like numbers and set the Informat for the variable to $2. Then use the data step to read the data.