Thanks Swaiba, I couldn't do you first method as I was not able to make the Form Field Names match the Names of the Fields in the Database due to third party applications relying on certain Field Names. However, your changePassword suggestion helped me do the following:
function doRegister($data, $form) {
// Write the new member to the SilverStripe Database
$member = new Member();
$member->FirstName = $data['GivenName'];
$member->Surname = $data['FamilyName'];
$member->Email = $data['EMail']['Home'];
$password = $data['Password']['_Password'];
$member->changePassword($password);
$member->write();
return Director::redirect('please-verify-your-account/');
}
Cheers,
Nova