WPML for WordPress is a powerful plugin to build a multi-language setup. But it still comes short in some areas, especially when it comes to a custom integration into plugins or when using custom post-types.
Normally this function should return the id of the linked translated content, but has not worked for me in some cases (especially when AJAX is involved).
icl_object_id( $id, 'custom_post_type', false, $translation_lang );
A simple SELECT helps to get that id yourself :)
// original_id - main post id
// $translation_lang - translated language code ... de, nl ...
$translation = $wpdb->get_results("SELECT * from wp_icl_translations where trid = (SELECT trid from wp_icl_translations where element_id = '".$original_id."' and element_type='post_page') and language_code='".$translation_lang."'");
$post = get_post($translation->element_id, ARRAY_A);