Mark,
Have you looked at using the COMArray() function? I've never used a COM that needed an array passed to it.
It's quite possible that VFP8 is more strict in it's adherence than earlier versions.
Also you can use the additional parameters to alines() to avoid that chrtran() call.
>* create ARRAY of recipients
>=ALINES(acRecipients,CHRTRAN(lcRecipient,";",CHR(13)))
>****** FAILS HERE ******
>loDoc.ReplaceItemValue("SendTo", @acRecipients)
>****** END FAILS HERE ******