When i've tried doing what you're doing, using external DLLs to control serial ports in paradox, i've found that impossible to be reliable, since ObjectPAL doesn't support callback routines, so i reverted to calling directly Win32 APIs from Pdox, and having an hidden form with a timer which polls the port.
If the polling routine is well tuned and only checks for chars in queue with the appropriate win32 call, all will function well and without excessive CPU utilization.