For forgot password link, it looks like you are using a link. But in GD we use javascript to display forgot password link.
For example test here.
http://wpgeo.directory/supreme-directory/gd-login/
So the link should be
<a href="javascript:void(0);showhide_forgetpw();"><?php echo FORGOT_PW_TEXT; ?></a>
Then we have this code that displays Forgot Password form
<div id="lostpassword_form" style="display:none;">
<h4><?php echo FORGOT_PW_TEXT; ?></h4>
<form name="lostpasswordform" id="lostpasswordform"
action="<?php echo htmlspecialchars(geodir_curPageURL()); ?>" method="post">
<input type="hidden" name="action" value="lostpassword"/>
<div class="form_row clearfix">
<input placeholder='<?php echo USERNAME_EMAIL_TEXT; ?>' type="text" name="user_login"
value="<?php echo esc_attr($user_login); ?>" size="20" class="user_login1 textfield"/>
<?php
/**
* Called before the get new password button in the login box template.
*
* @since 1.0.0
*/
do_action('lostpassword_form'); ?>
</div>
<input type="submit" name="get_new_password" value="<?php echo GET_NEW_PW_TEXT; ?>" class="geodir_button"/>
</form>
</div>
It does look like you are not using GD Login template for your login page. If you are gonna use custom template for login page, then make sure you have all necessary code there.