The G31/G41 chipsets work very nicely with CPU's that have relatively low FSB's and relatively high internal multiplier. They have gotten a bad rap as overclockers because they normally have, at the maximum rating, a 333 MHz FSB. Top end is around 360 MHz if you are lucky.
In the case of an E5400 with its 200 MHz FSB, you will be able to get it nowhere near 400 MHz anyway, so the high FSB of the P45 is wasted.
dehito hit it exactly. Your RAM settings are almost certainly the problem.
You need to go into the BIOS and change the System Memory Multiplier (or whatever your BIOS calls it) from AUTO to 2.00, 2.00B, or 2.00D - whichever you need to set the Memory Frequency to twice the FSB. Then when you increase the FSB, the memory clock will rise in step with it. If your FSB is at 300 MHz, your memory clock should be at 600 MHz.
Download CPU-Z to check your FSB:RAM ratio.
Warning - confusion factor between what the BIOS calls things and what CPUZ may call things. What the BIOS calls "memory frequency" is actually the memory clock. (Gigabyte BIOS here. Yours may differ.) What CPUZ calls "memory frequency" is half the memory clock - DDR2 RAM, remember? It transfers two chunks of data each bus cycle. What you want in CPUZ is a 1:1 FSB:RAM ratio.
Overclocking memory doesn't accomplish much besides limiting your CPU overclock where the real speed comes from.
Overclocking E5200 on G'byte G31
http://www.tomshardware.co.uk/forum/256558-11-question-intel-e5200
One of my systems:
GA-G41m-ES2L| E6600 OC'd to 3.66 GHz (333 MHz X 11) | ACF7P
The FSB on this particular board tops out at 360 MHz. If the CPU core would run fast enough, that's 4.5 GHz. See, you do not need the P45 FSB capabilities.