Root domain config overriding subdomain config
Craft looks for partial matches to apply config settings (both general.php and db.php which means you can do things like:

'.dev' =&gt; array(
.. 

'.com' =&gt; array(
..


Craft applies these settings for each match from the top of the file to the bottom. So in your case because you have the the production domain after your subdomain config it matches and overrides your subdomain settings. 

Simply swap your config variables over and it'll work.

return array(
  '*' =&gt; array(
    'omitScriptNameInUrls' =&gt; true,
    'generateTransformsBeforePageLoad' =&gt; true,
    'loginPath' =&gt; 'admin',
  ),
  'localhost' =&gt; array(
    'server' =&gt; 'localhost',
    'devMode' =&gt; true,
    'environmentVariables' =&gt; array(
      'basePath' =&gt; 'C:\wamp\www\craftcms',
      'baseUrl'  =&gt; 'localhost/craftcms/',
    )
  ),
  'safs.msu.edu' =&gt; array(
    'server' =&gt; '35.8.12.67',
    'devMode' =&gt; false,
    'environmentVariables' =&gt; array(
      'basePath' =&gt; '',
      'baseUrl'  =&gt; 'http://safs.msu.edu',
    ),
  ),
  'staging.safs.msu.edu' =&gt; array(
    'server' =&gt; '35.8.12.67',
    'devMode' =&gt; true,
    'environmentVariables' =&gt; array(
      'basePath' =&gt; 'staging',
      'baseUrl'  =&gt; 'http://staging.safs.msu.edu',
    ),
  ),
);