I’ve narrowed this issue down to the user account I was using. Other admin accounts seem to work fine, and populate the $current_user variables appropriately.
After looking through the user_meta fields in the database, I didn’t find anything particularly different about the buggy user account, so I guess the best resolution that I’ve found is to create a new user account and delete the old one.