Does your fan continue to run when you turn off the bike on does it only operate when the engine is running? I would still check your temp sensors before you go screwing with a new ECM. I went through the exact same problems you're having on an 01 X1.
The misfire only happens when I get into upper revs with in the fist 5-10 minutes of running. After 10-15 minues of running I can't get on the throttle hard or it will miss. Then, after the 15 min mark even at light crusing it will start to miss and eventually cut off. I let it sit for 5-10 mins and repeat until I'm home.
I believe I might have a race ECM that came with the bike but I haven't looked yet. I'm thinking it came with the bike when i bought it.
Bike doesnt run long enough for the fan to come on.
If it's a race ecm then it should say "for race use only" on it. If it does have one then it probably also has an after market exhaust and that loose cord you're seeing is probaly the interactive exhaust which would now be disconnected.
If you're bike was running fine with this set-up when you first got it then I don't imagine it would have to do anything with the mapping of the ecm unless the ecm is actually going bad. In that case i can't see where trying to re-flash it would do anything for you.
Sounds like you have an intermittent problem that is caused by something electrical (like a frayed wire/bad sensor) or possibly something with the ignition sytem.
So I got my Taylor performance wires in yesterday and put those on after trying 2 stock sets, same thing happened. I checked the ECM and it looks normal as far as I can tell. Now just time to wait until the one I ordered off ebay comes in to see if that's the problem. If not, no clue what I'm gonna do.
Get ecmspy for free and buy a cable for $50 or make a cable for less. I bought my cable on ebay for ~$50 and it came with ecmspy and the drivers and a bunch of maps, etc. It's worth $50 to be able to easily read and clear trouble codes, run diagnostics on all the bike's systems, and do TPS and AFV resets, and check and set static timing, plus tuning if you were to ever want to do that...