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()