Lösung: Löschen und neu anfangen.
Latches sind hier dein kleinstes Problem.
Nur mal als Beispiel: signal_out_stop ist ein Flipflop, das abwechselnd
auf die fallende oder steigende Flanke des Taktes reagieren soll.
Ich gehe davon aus, dass Stop nicht wirklich ein Takt ist, sondern ein
normales Signal, das du irgendwo erzeugst (oder gar ein Taster...).
So ein Signal verwendet man nicht als Takt, aber das ist genau das, was
rising_edge() macht.
Was du mit der Variable vorhast, verstehe ich auch nicht, die erfüllt
hier keinen Zweck, da der im Reset gesetzte Wert nie verwendet wird.
Wenn du was speichern musst, dann verwende Signale.
Der bessere Weg ist, Stop mit einem richtigen Takt, der bestimmt auf
deinem Board vorhanden ist, zu sampeln und je nachdem, welchen Wert
Rx_Buffer(0) hat, eine Aktion bei einer steigenden oder fallenden Flanke
auszulösen (nicht mit rising/falling_edge überprüfen).
Falls du kein VHDL Buch hast, dann kauf dir eins und arbeite das durch,
hier fehlen Grundlagen.
VDHL-Synthese von Reichardt/Schwarz wird dir weiterhelfen.