Plugin not installing properly, functions being redeclared

That plugin uses a really convoluted method to find & include file.php:

if (file_exists(dirname(__FILE__) . $DS . '..' . $DS . '..' . $DS . '..' . $DS . 'wp-admin' . $DS . 'includes' . $DS . 'file.php'))
    include(dirname(__FILE__) . $DS . '..' . $DS . '..' . $DS . '..' . $DS . 'wp-admin' . $DS . 'includes' . $DS . 'file.php');
else
  return; // if hierarchy is messed up, don't go further

My guess is that it considered your local environment to be “messed up” and didn’t try to include() the file. The thing is, file.php isn’t meant to be loaded on the fly like that, and you’re seeing what happens when a plugin tries to load it after WordPress itself already has.

The plugin author should be checking if( !isset( $wp_file_descriptions ) ) before doing the include() or checking function_exists( 'get_home_path' ) which is the actual function they’re trying to use from there. If one of those things exists, WordPress has already included the file and there’s no need to do it again.