I have HTML like the following:
Some
No, insertBefore will work fine with a text node as the node to be inserted before. The problem is that the node you're trying to insert before is not a child of the node you're inserting into. You need to remove the .parentNode bit:
newParent.insertBefore(moveable, newParent.firstChild);
You need to remove the ".parentNode" from your insert statement. A text node is still a node and can be referenced like every other node.