The reason that
Person and hasFather value (Person and hasSon value PersonB)
is a syntax error is not that it's “nested”, but that value requires an individual, but (Person and hasSon value PersonB) is a class.  If you use 
Person and hasFather some (Person and hasSon value PersonB)
instead, you should be all set.  This query asks for individuals that are people that have a father that is a person and has person B as a son.  That is, it's asking  for siblings of person B, i.e., other children of person B's father.
For instance, here's a query about the Simpson family where Bart and Lisa each have Homer as their father, and Homer has each of them as a child:

The data is:
@prefix :      <http://www.example.org/families#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix families: <http://www.example.org/families#> .
<http://www.example.org/families>
        a       owl:Ontology .
families:Person  a  owl:Class .
families:hasFather  a  owl:ObjectProperty .
families:hasChild  a  owl:ObjectProperty .
families:Bart  a            owl:NamedIndividual , families:Person ;
        families:hasFather  families:Homer .
families:Lisa  a            owl:NamedIndividual , families:Person ;
        families:hasFather  families:Homer .
families:Homer  a          owl:NamedIndividual , families:Person ;
        families:hasChild  families:Bart , families:Lisa .
families:Milhouse  a  owl:NamedIndividual , families:Person .