butの前の文は過去の事実を話しています。彼女が入院したのは過去のことのため、過去形のspentとなっています。
一方で、but以降は現在のことを表しています。日本語の訳ではまるで過去形のようにみえるため、訳がよくないですね。
英文で”is”が使われているのは、今現在で彼女の状態が良くないことを表すため、現在形の”is”となっています。
もし、”was”とするなら、次のような文章となります。
She had spent a month in hospital, but she was none the better for it.
but以降を過去にすると、過去のどこかの時点において彼女の状態は悪く、そして、入院していたのはそれより前になるため、butより前の文は過去完了形となります。また、but以降が過去の場合、現在の彼女の状態については言及していないため、現在の彼女の状態は良好かもしれないし悪いかもしれないし、どちらかは分からないということになります。
butより前と以降の文と、それぞれが時間の流れの中のどの点の話をしているかを考えると、時制を選びやすくなるかと思います。