Yes, "jam values" such as the top end and bottom end of these types of year categories are different in the summary file data / API data, vs. data.census.gov. Data.census.gov has the true value - 1939 and older, in this case - whereas the other formats need to keep it as numeric rather than string. Here's the logic of how I handled the jam values in the summary file and API formats: (If I've missed something, I'd love to know!)
define new string variable = B25037_calc_txt001E
if B25037_001E == 0, then return "Before 1939"
else if B25037 == 19, then return "2014 or later"
else, return B25037_001E