No puedo decirte sobre "clear" porque no uso linux, en cuanto al menú para que se repita debes aprender soble bucles y para ello sobre while, en cuanto a saber si escriben letras o números existe la función isdigit, ya tenés más para buscar y leer.
edito:
no entiendo que querés hacer pero estaba aburrido y modifiqué apenas tu código porque escribiste una chorrada de funciones que hacen basicamente lo mismo, así que las resumí para que veas como ahorrar código, obvio que faltan cosas y sobran otras, es solo a modo orientativo:
#-*- coding: utf -8 -*-
def caracteristicas(frzPct,agiPct,vitPct,enePct,comPct=0):
point=0
PctVal = 100
point = int(eval(input(' Total de puntos: ')))
frz = (point * frzPct) / PctVal
agi = (point * agiPct) / PctVal
vit = (point * vitPct) / PctVal
ene = (point * enePct) / PctVal
com = (point * comPct) / PctVal
print(' Fuerza : ', frz)
print(' Agilidad : ', agi)
print(' Vitalidad: ', vit)
print(' Energía : ', ene)
if comPct != 0:
print(' Comando : ', com)
print()
print(' Por Jorge Martini 2016')
print()
print(''' Bienvenidos a Stats Recomendados'
Mu Wolf S2')
[1] Soul Master
[2] Blade Knight
[3] Muse Elf
[4] Dark Lord
[5] Magic Gladiator
Sólo ingresar números!!!''')
pj = int(input(' Seleccionar personaje: '))
print()
print()
if pj == 1:
print(' Stats Recomendados Soul Master')
caracteristicas(2,40,8,50)
elif pj == 2:
print(' Stats Recomendados Blade Knight')
caracteristicas(40,30,10,20)
elif pj == 3:
print(' Stats Recomendados Muse Elf(Agilidad)')
caracteristicas(24,64,10,2)
elif pj == 4:
print(' Stats Recomendados Dark Lord')
caracteristicas(7,20,3,20,50)
elif pj == 5:
print(' Stats Recomendados Magic Gladiator(Balanceado)')
caracteristicas(30,30,10,30)
else:
print("ingrese un número válido")