Kleines Update:
Zumindest in der Theorie ist mir inzwischen ziemlich genau klar, was die Probleme sind und was zu tun ist.
Im EEPROM des Steuergerätes ist die Leistungsklasse des Fahrzeugs hinterlegt (also ob es such um UL (325i) oder OL (330i) handelt). Diese Leistungsklasse kann über die bekannten BMW Tools codiert werden. Aber: Das ganze geht nur innerhalb der ersten 10 Betriebsstunden. Danach wird der Wert gelockt und ist erstmal nicht mehr veränderbar.
Analog dazu steht der Wert auch irgendwo zwischen den Maps. Wenn jetzt also eine 330i Software auf ein 325i Steuergerät geflasht wird, erkennt die Software die verschiedenen Leistungsklassen und gibt einen Fehler aus.
Daraus ergeben sich folgende Möglichkeiten:
Man kann eine 330i Software nehmen und die Leistungsklasse anpassen. Das ist lediglich 1 Byte, man muss aber natürlich wissen, wo genau es steht. Weiterhin ist die Software mit einer RSA Signatur gesichert, das heißt man muss im Bootloader die Überprüfung noch rausprogrammieren. Das machen auch die bekannten Tools wie MHD, KESS oder das in dem Thread schon angesprochene Tablet. Deshalb dauert dort das erste Lesen und Schreiben so ewig. Btw bin ich mir ziemlich sicher, dass auch xHP so agiert.
Die Alternative ist, die Leitungsklasse im Steuergerät anzupassen. Der Vorteil davon ist, dass man danach Seriensoftware vom 330i flashen kann. Dazu muss entweder der EEPROM direkt beschrieben werden (und wieder die Adresse ermittelt werden) oder die Software erstmal so angepasst werden, dass auch nach den 10 Stunden eine Änderung zugelassen wird (+ RSA überprüfung raus). Anschließend kann normal codiert werden.
Wer mehr wissen will, hat hier einiges zu lesen: http://www.e90post.com/forums/showthread.php?t=1035058 