I don't know about the effect of any service packs, however the way Source-Destination pairing works has always been somewhat confusing.
Signal Codes are stored with each drawing. Changing the code on the Source will not necessarily properly update the Destination automatically even after you've properly edited the Destination. You often must "Freshen" when you've made changes on one end or the other to get the most current data saved with the current drawing.
- Make sure you know whether the ??? are referring to a wire number, or a reference. If the ?? are from a missing wire number, check the wire the Source arrow is connected to - does it still have a wire number on the wire, or has it become a "floater?" If a floater, you'll have to replace the wire number to get rid of the ???'s. If the wire number is assigned from another drawing and isn't coming over to the wire on which you've put your Destination arrow, you should fix the Source drawing first, QSAVE it, navigate back to the Destination, Freshen the data, then Retag/Update should put the wire number back on the Destination wire.
If it's a reference that's missing, check the Signal Code carefully, and assure it's the same on both Source & Destination arrows.
-Most importantly, if you find problems on one end or the other....fix the errors on the Source FIRST, QSAVE, then go to the other drawing, Edit Component, select the arrow, select the Project button, then hit the Freshen button. You should then be able to hit Cancel TWICE, and Retag/Update the Destination arrow to get the right data. Finally, QSAVE, go back to the OTHER drawing, repeat the Freshen & cancel procedure as above, then Retag/Update the Source arrow.
If the above procedure fails to work, some portion of the ACE code has failed in your current session, and you WILL have to restart ACAD-E to get everything back to normal.