Would it not be better to use proper Moose roles now that you are converting this to Moose? Otherwise I would really be wondering what you gain from the conversion? Sorry, I know you probably thought about all of this and I know it's a bit annoying when you ask a question and people start preaching "the one true path" at you but sometimes it may also helpful to run your reasoning past another person to arrive at new solutions...
Anyway, I think the Moose documentation is not contradicting the observed (and probably expected) behaviour. Yes, the parent's BUILD method is called but the object is still of class "Child", not "Parent". It's like calling $self->SUPER::BUILD (which you shouldn't) - you call an inherited METHOD but the object you call it on doesn't change class, if that makes any sense?
The fact that you get "Parent" from __PACKAGE__ doesn't mean that the object is of that class - it just means that this method is defined in the file that defines package "Parent".