You are converting the character string to a number and then assigning the number back into the same character variable.
You need to create a new numeric variable to hold the numeric value.
It is better not to overwrite you original dataset, you might need to recreate MCO from whatever source you used to create it originally. Also depending on how you created it you might be able to fix the issue there.
Also BEST is a FORMAT, not an INFORMAT. Using it as an INFORMAT will just cause SAS to use the normal numeric informat. (Note if the strings have thousands separators then use the COMMA informat instead, in may ways that is the "best" informat.). The INPUT function does not care if the width you use on the informat is longer than the length of the character string. The maximum width the normal numeric informat can use is 32.
data fixed_mco;
set mco;
overallrt_num = input(overallrt, 32.);
run;