This is an script I wrote a long time ago, feel free to try it, like your script above, it requires the user's current password. Also, I am using the WinNT provider instead of the Ldap Provider.
'Script Starts Here.
Dim User, Username, Domain, InitialMsg, SecondMsg
'Bind to Active Directory System Info
Set AdsSysteminfo = CreateObject("adsysteminfo"

UserDomain=AdsSystemInfo.DomainShortName
'InitialMsg="Please enter the username that needs the password changed!"
'SecondMsg="Sorry, but you must enter a username to continue!" &vbCr &"Or press Cancel to quit." &vbCr
'UserName=GetPassword(InitialMsg)
AskUser
Sub AskUser
On Error Resume Next
Set User=GetObject("WinNT://" &Userdomain &"/" &Username & ",user"

If err.number<>0 Then
InitialMsg="Please enter a valid username that needs the password changed!"
SecondMsg="Sorry, but you must enter a username to continue!" &vbCr &"Or press Cancel to quit." &vbCr
UserName=GetPassword(InitialMsg)
AskUser
wscript.quit
End If
InitialMsg=UserName &Vbcr &"Please enter your current password"
SecondMsg="Sorry you must enter a password." &vbCr &"Or press Cancel to quit." &vbCr
OldPassword=GetPassword(InitialMsg)
InitialMsg=UserName &Vbcr &"Please enter your new password"
NewPassword1=GetPassword(InitialMsg)
InitialMsg=UserName &Vbcr &"Please verify the new password"
NewPassword2=GetPassword(InitialMsg)
If NewPassword1=NewPassword2 Then
Call User.ChangePassword(OldPassword,NewPassword1)
Select Case Err.number
case 0
msgbox "Password Changed Successfully"
wscript.quit
Case -2147024810
msgbox "Password Not Changed!" &vbCr &" An error occurred, Please try again." &vbCr &"The specific error number is:" & err.number _
&Vbcr &"The error message is: The specified network password is not correct."
Case -2147022651
msgbox "Password Not Changed!" &vbCr &"An Error occurred, Please try again." &vbCr &"The specific Error number Is:" & err.number _
&Vbcr &"The error message is: The password does not meet the password policy requirements. Check the minimum password length, " _
& "password complexity and password history requirements."
Case Else
msgbox "Password Not Changed!" &vbCr &" An error occurred, Please try again." &vbCr &"The specific error number is:" & err.number _
& "A specific error message is not available."
End Select
err.clear
AskUser
Else
Msgbox "Sorry, the new password entries do not match!" &vbCr &"Please try again"
AskUser
End If
End Sub
Function Getpassword(ask)
getpassword= InputBOx(ask,"Password entry form"

If getpassword = vbEmpty Then WScript.Quit
If getpassword = "" Then getpassword=GetPassword(SecondMSg &initialmsg)
end function