Okay, so the warning message "pcomplete-completions-at-point fails to return valid completion data" originates from completion-at-point in minibuffer.el.

There's a comment in there that says if the CAPF returned t, it assumes completion already happened. It does seem that the CAPF returns t, at least in eshell in a string. So that may be the root of the problem.

I'm not 100% sure I'm interpreting the debugger right. To do what I did,

1. emacs -Q
2. M-x debug-on-entry RET pcomplete-completions-at-point RET
3. type a quote mark in eshell and press TAB