for word in read: <--- iterating over chars in "read"!
re.findall(r"\b[aAeEiIoOuU]*", read) <-- using read again, discarding result
your iteration and pattern usage do not align. Plus, you don't use the result.
Consider processing the file line by line etc.
twovowels=re.compile(r".*[aeiou].*[aeiou].*", re.I)
nonword=re.compile(r"\W+", re.U)
file = open("filename")
for line in file:
for word in nonword.split(line):
if twovowels.match(word): print word
file.close()