There could be any number of problems, and I don't know your controller.
However there are a few common issues with setting up a VFD on a spindle.
1) Your controller will probably be setting the reference frequency, not the RPM. If your spindle was a 4 pole motor then the frequency needs to be double that for a 2 pole motor to achieve the same RPM. So your controller may need to be set to output the frequency for a 4 pole spindle. Not sure if you have that setting in your controller.
2) The VFD may be incorrectly set up for a 4 pole motor, so it would display the RPM as half that of a 2 pole motor. If it was a actually a 2 pole motor it would be doing the correct RPM but displaying incorrectly on the VFD.
3) There may be a maximum frequency limit set up in the VFD which is just limiting/capping the RPM. Not sure if the RPM is displaying half at various speeds, or just at that particular speed.
4) You may have other settings incorrect in the VFD such as nominal current, nominal voltage etc. which is causing it to drive very inefficiently and not achieve the correct RPM. This would usually trip out safety settings in the VFD of it was set up so badly, so less likely the issue.
5) You may just have a RPM/Frequency Scale Setting on the controller that is incorrect.
6) The RS232 Settings could be incorrect and it is getting the commands jumbled. This would usually result in some communications error message on the VFD, but maybe not. It could just be missing some characters, or reading them incorrectly. RPM would likely be erratic and unpredictable in this case.
7) Some VFDs expect frequency * 10 as they don't support a decimal place in the value. So 104.5 needs to be 1045. This would not explain a half or double result
8) The VFD may just be expecting different information, for example the controller may be sending frequency, but the VFD is expecting a percent of max value. Maybe the controller is expecting a value through the RS232 that is equivalent to the data it would receive from its analogue input, which would be some binary value like 1024, 2048, 4096 which would act like a percentage type command but needs to be scaled accordingly. Need to read the VFD manual to see what data it is expecting to receive to set the frequency.
These are generic issues that arise with VFDs, not specific to your hardware