Why does out command works wrong? (Proteus 8086)
You are using the wrong control signal ALE which latches the address part and I have no idea why you are enabled the output with the decoded signal. 

I'd also switch to a 374 edge triggered device clocked by that decoded signal.