Python 3, 196 190186 bytes
F="><> >><> ><>> ><<<> <>< <><< <<>< <>>>< ,<..>,".split()
def g(s):
if s in F:return[s]
for f in F:
i=len(f)
if f==s[:i]and g(s[i:]):return[f]+g(s[i:])
R=g(input())or[]
if R:print(*R)
Simple recursion. g
either returns a list of parsed fish, or None
if the input string is unparseable.