Hi Spence, looks like you're getting nulls for the fields that end in EA (estimate annotation) and MA (margin of error annotation) which are essentially the footnotes when there are asterisks or other symbols in the table instead of numbers. This table has all numbers, so no annotation/footnotes are needed. The real fields you need are the ones that end in E (for estimate, or numerical value), and M (margin of error, or range). (While on the first link in your post, click Notes (right next to Geos) on the toolbar right above the table, and you will see all the footnotes associated with each symbol. But again, not applicable to this table for the whole US.)
The language values, or more generally, the field labels or attributes will not come through in the API. They are embedded in the field names, for example, B16001_003E means table B16001, 3 means 3rd estimate or third line of the table (in this case, Spanish), and the E at the end tells you that it's the estimate rather than the MOE.
I use the Table Shells as a lookup table.
Hope this helps!
-Diana