I think there is a misunderstanding about what toggling actually does in regard to inputs and outputs. Toggling simply changes the bit in memory. If it is a 1 it makes it a 0. If it is a 0 then it makes it a 1. I'm guessing you understand that. But lets dig a bit deeper.
Inputs
Lets say you have a limit switch in the field with N.O. contacts and the switch is open. Since the contacts are open, the input module is not seeing a signal from the field device so it stores a 0 internally and then transmits that to the controller at a regular timed interval called the RPI. It is then stored in a controller tag. Open contact, 0 in the module, 0 in the tag.
If you toggle that bit, you are toggling the controller tag to a 1. So now you have an open contact, 0 in the input module, 1 in the tag. But the next interval of the RPI (usually 5ms) the input module will re-transmit the 0 and overwrite the bit you have toggled. So your toggle was present, but the input module overwrote it. Toggling a limit switch doesn't actually close the contacts on that field device. The PLC will use the data we are getting from that field device. Unless you can repeatedly toggle faster than the RPI.
Outputs
When you toggle an output bit you run into a similar issue, but this time it is the logic that would overwrite your toggle. If my logic is false then my output bit would be turned off (using an OTE). Every scan of the logic it keeps turning that bit off. If I toggle the bit and turn it on, it will turn on but only until the next time that rung is scanned, then because my rung is still logically false, it will be turned back off by my logic. So at most I will get one scan where it was on.
Toggling has no priority so toggled bits get overwritten by everything. That is where forcing come in. Forcing has priority. Toggling also happens mid-scan. So you might toggle a bit and see nothing happen. You might do that 8 times with nothing happening, then the ninth time it triggers what you wanted.
And Emulate versus a real PLC doesn't really matter except that in an emulator you cannot read from I/O modules. If your PLC program has I/O modules, they need to be inhibited otherwise they will appear as faulted and won't function.
OG