It is weird how reputation levels can flip flop. You can sat bomb a planet then give everyone 1 gamma core each to earn forgiveness. Or work your rep up to cooperative then instantly lose whatever coop gives you due to a smuggling scan.
The game Rimworld always gives a buffer when you change reputation levels so flip-flopping doesn't happen. Starsector can't copy the exact way Rimworld does it because Starsector assumes rep X always equals rep level Y. To get around that, I suggest adding rep shields and locks.
Shields and locks would stop you from losing or gaining reputation, respectively. How much they'd prevent would depend on the last rep level you gained or lost. For example, rising or falling to favorable might give you a 5 point shield, and rising or falling to hostile might give you a 15 point lock. This would put a buffer on the 0-side of each rep level (excluding neutral, which already has buffers) so there would no longer be strangely quick reputation changes.