Is page-wrap already in the DOM when you do this? Because if so, it seems to work: http://jsbin.com/ukite3 I've tried it with Chrome and Firefox on Linux, and IE8 and IE6 on Windows. That example uses your code above, then shows the div two seconds later (to prove that the addition worked). Works fine. If I comment out the part doing the hiding, I see the new content immediately.
If page-wrap isn't already in the DOM, you can't use selectors like $(".toggle_container") to update them, because selectors look through the DOM tree. (Your appendTo call should fail as well, since it will look in the DOM tree for an element with that ID.) If page-wrap isn't already in the DOM, you'd want to change your code like so:
var pageWrap = /* ...whatever creates the page-wrap element ... */;
var toggle = $('<div class="toggle_container"></div>');
toggle.html('<div class="block"><p>'+title+'</p></div>');
toggle.appendTo(pageWrap);
toggle.hide();
(You can condense that a little bit if you want to, chaining the last three lines.) Live example: http://jsbin.com/ukite3/2
Off-topic: I find that in situations like this, creating a self-contained, minimalist example can really help me find the actual underlying problem. I can't count the number of times I've been sure something was X, then isolated X out and found that no, it was Y all along... :-)