Can anyone help me with replace genesis post excerpt with yoast meta description and if there is no meta description show the excerpt?

Remove:

 add_filter( 'get_the_excerpt', 'replace_post_excerpt_filter' );

        function replace_post_excerpt_filter($output) { 
            return $output;
        }   

from your code, and you should find it works.

The trouble with nested functions, as you have here, is that once the parent function is called the first time, it defines the inner function, but when the parent function is called the second time (in this case, when another Genesis entry is shown on an archive page or with a posts widget), then it tries to define the inner function again, but that causes a fatal error as PHP doesn’t allow that.

In this case, you’re filtering the excerpt, but not doing anything to the value passed into the filter function except immediately returning the original value i.e. the filter does nothing. As such, you can remove the redundant filter and it’s callback, and that should fix the negative side-effect.