Change transform.up and transform forward simultaneously

I want my player to walk on walls (only 90 degrees) and change his rotation with transform.up = norm_vector (the normal vector of the plane I am walking on)
To direct the view upwards I also use transform.forward = prev_norm_vector (the normal vector of the face where I was before)
Unfortunately, this seems to randomly change the rotation of my player (only transform.up alone works). I have already seen some suggestions on the internet with LookAt/LookRotation… but with transform.LookAt(prev_norm_vector, transform.up) the player also rotates randomly.

that is because you use transform.LookAt incorrectly. As always i can only recommend to read the documentation: documentation link

There it says clearly that the first argument is a point in global coordinates. This means this does not work with a direction unless you add the transform posion to it. The second argument however must be a direction. (for example the face normal)

So given from your post the following should be more correct:

  transform.LookAt(transform.position + prev_norm_vector, norm_vector);

(though this does not really make sense to be due to prev_norm_vector - but then again your description of what prev_norm_vector is and why you think that this is the correct forward direction for your character is not that extensive)