Another thought. If you hookup to Windows TuneECU and run it while watching the L table. Note the cells it highlights with the live cell tracer. Then switch off and adjust those cells' values to be the same as the values in the cells over in the area of the table that it SHOULD be running off at idle (I.e. 800-1000rpm and ~600hPa). Save map as a temporary test map and load to ECU.
Try run engine again.
It will prove that there is nothing else wrong, just that there is a vacuum leak and the MAP is seeing (or transmitting) the wrong value.