I can help with the password issue.
What you can do is use the encryption class from PE in CE
So first some background, as it will help understand the solution.
The encryption is handled via a helper class, which is defined in Mage_Core_Helper_Data
const XML_PATH_ENCRYPTION_MODEL = 'global/helpers/core/encryption_model';
This class is instantiated in the same class in the method getEncryptor
$encryptionModel = (string)Mage::getConfig()->getNode(self::XML_PATH_ENCRYPTION_MODEL);
So, all you need to do is rewrite that helper class in your own module:
<global>
<helpers>
<core>
<encryption_model>YourNamespace_Login_Model_Encryption</encryption_model>
</core>
</helpers>
<models>
<YourNamespace_login>
<class>YourNamespace_Login_Model</class>
</YourNamespace_login>
</models>
</global>
then copy the file Mage_Core_Model_Encryption
from PE to your module as the file you are rewriting to : YourNamespace_Login_Model_Encryption
and make sure it extends the core CE class using extends Mage_Core_Model_Encryption
which will allow youto also still call the parent class method code, thus gain access to the original CE encryption model methods. (see more below about phasing out this 'hack')
The end result is that you would effectively replace CE's encryption with that what was used in PE
Phasing out this change (just a thought, no code how to make it happen):
Ultimately you'd want to get your customers into the core CE encryption, and phase out the PE encryption model
You can add a flag attribute to customers accounts, and note if they are using the PE or CE encryption, and then if on CE you can call the parent method in CE to do the work.
You'd want to make sure new password creation always fall-back to CE methods, so any new passwords are created using CE methods.
Hope that helps.