No, you can't do that. This information is read from the device by the hardware during device recognition and then made available to the kernel.
What you can do is you can force some driver to recognize this device:
echo 2-7:1.0 > /sys/bus/usb/drivers/<drivername>/bind
This 2-7:1.0 is a USB bus address of the device, you can infer it from lsusb -t output. You can even create an udev rule to do this automatically.
However, this may not help. I think your phone presents not the expected PID:VID pair because it is initialized in different mode, where it is really different device. For example, my phone asks "which mode to run as" when it finds out I connected it to the computer, with choices like "USB storage" or "MTP device" or "Just charge", and it is presented to the computer in different ways and gets bound to different drivers. Force binding the device to another driver than it gets bound to automatically will definitely not work in my case.
Why your phone gets sometimes initialized in the wrong way is a quite different question. Better address that rather than trying to force things.