I assume the IO is being controlled by the integrated Ethernet port, not a cp card. I also assume the PLC has an entry in the diagnostic buffer that a station was lost/found. Does the node itself show any diagnostics? Is it the same IO node every time?
In my experience, 12 IO devices is not a large number. I wouldn't think the IO would be too much, unless they are all set to update at the maximum update rate or have significantly more data than normal. It is possible to adjust the amount of time spent on communications in the CPU properties, if you want to try to increase this. I think the default increases the cycle time by up to 20% for communication and the value ranges from 10-50%. I don't know of a simple diagnostic for the S7 300's to measure how much of the cycle time is code scan vs comms, although the newer 1500 series does.
If it is the same IO node faulting every time, the device itself may be shutting down. I have seen some Profinet devices that reset the Ethernet interface if they see "too much" traffic.
One drive I commissioned was from a company new to Profinet, and they implemented the stack in software, instead of the faster (and probably more expensive) hardware some vendors use. The drive interface would error out if the PN update rate was faster than 8ms, which means it had to be increased from the default of two. Also, we had to slow down the diagnostics as well, by calling Report System Error to a cyclic OB instead of OB1.
In either case, when the drive Ethernet interface reset, the drive indicated no errors via the Drive setup tool (connected via serial). I don't think I could even ping the device until it booted back up.
Next time the device disappears, you might want to try pinging it to see if it is still on the network. A tool like Accessible Nodes or the PST (Primary Setup Tool) could be used to see if it responds to some basic Profinet requests as well.