JavaScript (ES6), 48 48 41 bytes
Expects the number as a stringlist of digits. Returns a Boolean value.
f=([c,..a=>a.a],i=17)=>c?fmap(a,id=>i-=c%7=d%7?1:i%7-6?2:.1,i=17):&&!i
Commented
f = ( // f is a recursive function taking:
[c, ...a], // c = next digit, a[] = array of remaining digits
i = 17 // i = syllable counter
) => //
c ? // if c is defined:
f( // do a recursive call:
a, // pass the array of remaining digits
i -= // update i:
c % 7 ? // if c is neither 0 nor 7:
1 // decrement i
: // else:
i % 7 - 6 ? // if i mod 7 is not equal to 6:
2 // subtract 2
: // else:
.1 // invalidate the result by subtracting 1/10
) // end of recursive call
: // else:
!i // is i exactly equal to 0?