It's not really a bug
There are mutliple ways to write an instruction and CE doesn't always pick the same instruction as the game used.
In this case it picks the 'smaller' version (83 c8 is 2 bytes, 0d is 1)

If you want to override it you have to use db and fill in the exact bytes.
e.g in your script the disable code should look like:
0052a783:
db 83 c8 ff //or eax,ff
mov [esi+24],eax