That doesn’t look like a valid reparse tag (see the IsReparseTagValid macro in ntifs.h). Not sure if that’s the problem but it certainly can’t help.
No, removing and putting back the reparse point would be a very bad design and is not necessary. You’d basically need to open every single file in PreCreate to know if it’s your reparse point or not. And then you’d be thrashing the disk adding and removing the reparse point for no reason. The inbox Cloud Filter uses this feature so it definitely works.
Sorry to say you need to keep debugging to figure out what’s going on. Is WordPad the ONLY app that doesn’t work? Do you see opens for your reparse point in your filter (by path) that are NOT acknowledged? Note that your WordPad ProcMon trace has a STATUS_REPARSE result which would indicate that you’re not capturing all opens of your reparse point.
(I’ll also say that you might want to invest in taking a seminar or getting some consulting help. Not sure what the ultimate goal of all this is but you want to make sure you understand how all of this is supposed to work before plowing forward to an implementation. If it’s just for learning then whatever, but if you’re trying to build a product it’s a good to take a step back before you get too far down a rat hole.)