소스가 일부분이라 확실하진 않지만..
int btn7visi = pref.getInt("btn7visi", View.VISIBLE);
btn7.setVisibility(btn7visi);
int btn7Invisi = pref.getInt("btn7Invisi", View.INVISIBLE);
btn7.setVisibility(btn7Invisi);
위 소스를 순서대로 보면 btn7 에 대해 먼저 VISIBLE 했다가 다시 INVISIBLE 하는 것 같습니다.
btn7 의 활성화 상태를 저장할 때 "btn7visi", "btn7invisi" 이렇게 두 개로 저장하는 것이 아니라
키 값을 하나로 잡고 활성화(View.VISIBLE) 또는 비활성화(View.INVISIBLE) 값을 저장해야 하지 않을까 합니다.