I think the one of the problems is you are echoing the results of the shortcode instead of 'returning' it.
If PHP isn't showing recognizing the shortcode then you should use output buffer. See example
Function my_shortcode(){
Ob_start(); codes here; $something = ob_get_clean(); Return $something;
}
Add_shortcode('shortcode','my_shortcode');
function my_shortcode(){
ob_start();
//codes here;
$something = ob_get_clean();
return $something;
}
add_shortcode('shortcode','my_shortcode');
It's always safer to update the plugin than to edit the codes of the plugin for obvious reasons.