In underlying PTP::Transaction there is an if checking for *params not being zero before calculating len. There is at least one PTP Command that needs the first parameter to be zero (0x90c2=Nikon ChangeCameraMode)
Why is there the check for *params? Removing it would solve the issue.