PropertyChangedEventHandler How to get value?

Use the PropertyName attribute of the PropertyChangeEventArgs to figure out which property was modified, then use some logic to set that property to, what I'm calling, the boundItems.

You can use the sender object and cast it to the appropriate type if you need to as well, this allows for a bit more flexibility. Using Reflection will allow you to get and set the property with no real manual labor involved by just using the String value of the PropertyName, but it's much more overhead, so if you're doing this a lot, I'd advise against it.

void item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    switch(e.PropertyName)
    {
        case "Name":
            //You Code
            boundItem.Name = (sender as A).Name;
            break;
    } 
}

Alternatively, you can use Reflection to set the property instead of building a switch case.

void item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    //Untested Reflection example. Probably needs some modifying. 
    PropertyInfo prop = typeof(A).GetType()
              .GetProperty(e.PropertyName, BindingFlags.Public | BindingFlags.Instance);
    PropertyInfo boundProp = typeof(B).GetType()
              .GetProperty(e.PropertyName, BindingFlags.Public | BindingFlags.Instance);
    boundProp.SetValue (boundItem, prop.GetValue((sender as A),0), null);
}

You best option, though, is to create the classes with these ties built into the object's properties. Modify the get and set of the properties to set both the affected property and the boundItems property as well. That would look like this:

class A: INotifyPropertyChanged
{
   string PhoneNumber;
   string _name;
   B BoundItem = null;
   Public string Name {
     get { return _name;}
     set 
     { 
         _name = value; 
         if(BoundItem != null)
              BoundItem.Name = value;
     }
}

class B
{
   string Name;
   int age;
}

class Main
{
     public Main()
     {
         A item = new A();
         B boundItem = new B();
         item.BoundItem = boundItem;
         item.Name = "TEST";
         Console.WriteLine("Item Name: " + item.Name);
         Console.WriteLine("BoundItem Name: " + boundItem.Name);

         // Result:
         // Item Name: TEST
         // BoundItem Name: TEST
     }
}