The X3 has 8GB of onboard storage, it is very easy when looking at the X3 connected to a PC, to transfer the x3.fw file to the onboard storage instead of your sd-card. If that happens, then the firmware will not update.
I can't speak for Windows, but when I attach my X3 to my Mac with its sd-card in, it shows two volumes mounted. One is called 'X3' and the other is called 'UNTITLED'. The first of these is the X3's own onboard storage and the second one is my actual sd-card (your sd-card might be called something else if you have given it a volume name)
Just ensure that you are transferring the x3.fw file to the 'UNTITLED' volume (or whatever yours happens to be called) and not the X3's own internal 8GB storage