"IF the lower word is greater then 32767 when split, I have bad results"
You don't say what OPC you're using, but if it's one of the Industrial Automation/Lookout drivers for AB that came with LVDSC, here's a guess what the problem is:
With a 32bit input, the split function results in two U16 values. A quick check of the IA/Lookout documentation for the AB drivers shows that N registers data members are configured to accept 16 bit _signed_ integers (-32768 to 32767). When you try to write 0x8000 as 32768 to your lo word tag/register, DSC/OPC just coughs.
Suggested possible solution:
Typecast the lo word U16 from your split to I16 and write that value to the tag/register.
If you're using another OPC driver, the problem is probably something similar.
=====================================================
Fading out. " ... J. Arthur Rank on gong."