Actually, I've had another look and there's a number of issues here. Lerp isn't the biggest one. Lerp really wants to go from low to high, not high to low, so you need to invert the math, which is why you have to subtract the lerp value from the original. The manual gives the math for lerp. You can try it manually.
The real issue is Wait! Wait seems to cause more trouble than it does good. If I disable all of the waits, things work again. You have to remember that a true condition runs every tick. So for example, slajd=1 was running many times, calling Wait every time, so there are a lot of waits stacked up by the time you press the second button, which means all of those lerps moving the opacity up where still there, fighting with the slajd=2 code which is trying to move it down. That's why everything was jiggling back and forth.
You need to change your code to use timers, which there are many threads on, to get the timed behaviour you are looking for. Here's the changes with all waits turned off for the moment, and the cytometriaprzeplywowa lerp altered. You can see it fades slowly, where all the unchanged ones disappear almost immediately.
Also you should make sure your variables get set to zero along the way. For example, slajd=1 stays running that code forever, until you press some other button. Same for wybrany.
sample (change the ZIP to CAPX).