That is probably the best fix.
The initial compile check exists to ensure that the creation/change of a data type will not introduce new compilation errors in ~/App_Code - should that ever happen, the whole web app goes boom and developer quality of life suddenly drops sharply. So the check is there to ensure that won't happen, but in some freak situations the check will produce false negatives. Your work around is likely the quickest and simplest way to move on.
The initial compile check exists to ensure that the creation/change of a data type will not introduce new compilation errors in ~/App_Code - should that ever happen, the whole web app goes boom and developer quality of life suddenly drops sharply. So the check is there to ensure that won't happen, but in some freak situations the check will produce false negatives. Your work around is likely the quickest and simplest way to move on.