How do i get the direct neighbor in a hierarchy

Well… I don’t think get_previous_posts_link would help you. It only return link to the previous set of posts within the current query. (see previous_posts_link it prints this link, and get_previous_posts_link returns it).

And quote from Codex:

Prints a link to the previous set of posts within the current query.

If you need the values for use in PHP, use get_previous_posts_link().

Because post queries are usually sorted in reverse chronological
order, next_posts_link() usually points to older entries (toward the
end of the set) and previous_posts_link() usually points to newer
entries (toward the beginning of the set).

You could try with these plugins:

But I’m not sure if they will work correctly.

I always do it with my custom SQL query – it’s more efficient, because you don’t have to select all pages (and all info about these pages).

function my_get_next_page_link($post_id =null) {
    global $post, $wpdb;
    if ( $post_id === null )
        $p = $post;
    else
        $p = get_post($post_id);

    $res_id = $wpdb->get_var(
        $wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE post_type="page" AND post_status="publish" AND post_parent = %d AND menu_order > %d ORDER BY menu_order ASC, ID ASC LIMIT 1", $p->post_parent, $p->menu_order)
    );

    if ( !$res_id )
        return null;
    return get_permalink($res_id);
}

Of course you should write your own SQL query inside this function (it depends on your query params). You can write same function for previous page link.

PS. Probably it’s not the easiest way of doing it, but it is efficient and very customizable (if you know SQL).