VMware.pm currently selects the .vmx file's guestOS value by attempting to match the OS.name value to a hard-coded hash key in VMware.pm (%VM_OS_CONFIGURATION). If a base image is created for an OS not explicitly defined in the code, a very basic default is used (winXPPro or otherlinux).
This works well enough for existing OS's. However, if you create a new Windows 10 base image and select the proper guestOS (windows9-64), VCL will resort to the XP default for images loaded with the image.
It's worse for Linux images since most use the generic vmwarelinux OS.
Things could be easily improved by using the value from the reference .vmx file if available. This would the setting used to create a base image with the correct guestOS to be propagated to derivative VMs. It would not help existing images.
Another option could be to attempt to determine the OS from the guest before an image is captured and include a comment in the reference .vmx file. This would allow guestOS's to be dynamically determined.