Python3, 259256 bytes
lambda X:[(m,n,r)for m in range(1,X+1)for n in range(m+1,X+1)for r in range(1,X+1)if F(n,m,r)and m+n<2*r]
def F(n,m,r):
T=r**2if(T:=r**2-((n+m)/2)**2
if T<0)<0:return 0
L=2*T**.5
U=absreturn int(U:=abs((-L+(L**2+4*m*n)**.5)/2)
return U)==U and int(U)==U and sorted([U,L+U])!=sorted([n,m])