>Hai centrato il problema ... Grande!
>
bene 
>In effetti la stessa applicazione lanciata su un ambiente in
>cui è presente Framework 4.5.1 o 4.5.2 non ha problemi
>
>Lanciata invece su un ambiente con Framework 4.0 non appena rileva
>la presenza del valore 16 sul campo Riga si pianta
>
la riga con valore 16 mi lascia comunque sconcertato, ma sai tu hai tempo di debuggare il framework? io sincertamente no, mi piacerebbe, ma lo trovo un po' una perdita di tempo...
>Ma come posso risolvere su macchine con Windows XP dove non è
>supportato l'aggiornamento del Framework?
>
intanto saprai bene che windows xp non è più supportato, e le macchine con xp devono aggiornarsi ad una qualsiasi versione successiva, esistono anche versioni di windows leggere (windows thin pc), basato su windows 7, che possono girare su hardware relativo all'era xp: http://goo.gl/9buk3P
detto questo capisco benissimo la problematica di fare aggiornare i sistemi, e quindi io penserei di cercare se esiste una patch mirata a quel bug, innanzitutto facendo un full update con windows update della macchine (sempre che con win xp funzioni ancora l'updater, altrimenti devi cercare le KB a mano!), altrimenti cercando un bug-fix mirato al problema del system.data.entity sempre dal microsoft download center, infine aprire un ticket di supporto con microsoft, anche perchè qua si parla di framework 4, non tanto di windows xp, e quindi il supporto c'è ancora per la versione 4, e alla peggio devono darti una patch mirata per la tua esigenza che puoi installare sulle macchine con il problema e che non possono aggiornarsi al 4.5. Apri il ticket e gli passi esattamente lo zip che hai passato a me, dicendo di provarlo su una macchina con solo il framework 4.0 installato (prima anche tu assicurati con una virtual machine, se installando il fx 4.0 e tutte gli updates si ripresenta il problema o sparisce, perchè forse ti mancano update su quelle macchine xp). Prova ad installare l'update 4.0.3 sui win xp, che dovrebbe contenere tutti gli updates del fx 4.0: http://support.microsoft.com/kb/2600211
se invece vuoi modificare la tua struttura per schivare il problema, puoi introdurre le chiavi surrogate, invece che avere chiavi composte (perchè è da li che credo nasca il problema), ricreando una struttura di questo tipo:
(ho tralasciato le colonne dettaglio per semplicità e ho cercato di tenere la tua naming convention)

374x226
10Kb
poi inserire un rafforzativo per evitare di inserire righe doppie per lo stesso ID_Movecont_T, sfruttando lo unique constraint:
ALTER TABLE dbo.New_Movcont_DSet
ADD CONSTRAINT UK_New_Movcont_DSet_ID_Movecont_T_Riga UNIQUE (ID_Movecont_T, Riga)
lo unique constraint lo devi creare tu manualmente, perchè EF 4 non lo supporta, ma immagino che tu abbia un approccio database first, e quindi non avrai problema.
Nulla ti vieta di avere anche le colonne CodAZ, Anno e ID, nella tabella New_Movecont_DSet, se hai bisogno della chiave naturale completa (CodAZ, Anno, ID, Riga), di conseguenza inserendo la unique per quelle 4 colonne, però spesso non si ripetono i dati, perchè puoi sempre fare la lookup all'occorrenza, ma tutto dipende dalle tue esigenze. Per retrocompatibilità con il tuo codice se porti tutte le informazioni è più veloce il refactor.
Ti ho allegato l'esempio completo rivisitato con le surrogate.
Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic