Hey Elliot,
I just experienced the same problem and did some debugging and found that $this->settings[‘version’] is an empty string on line 220 in the function named check_update.
// compare versions
if( version_compare($info->version, $this->settings['version'], '<=') )
{
return $transient;
}
The problem seem to be the if clause at line 70.
if( $pagenow == 'plugins.php' )
Because the user might not be on the plugins.php page the version in the settings array will not be set, and defaults to an empty string on line 36.