in _node_breadcrumb_set_location, you overwrite the currently displayed item with the one corresponding to the menu item that should be set to active. I removed the line menu_set_item($_GET['q'], $menu_item); without any effect for your module. When other modules (cck_blocks in my case) try to access the currently displayed content, they can only access the content that is available at the highlited menu item.

Please remove that line or find another way to get your things done as other modules may need the currently displayed content.