I'm not at all too familiar with the Cisco IP phones, I am more of a HP Procurve kind of guy so the terminology is a bit different.
Unless you segment your switches with VLANs everything can see everything, i.e if you want your VLAN1 (10.0.1.0 network) to talk to only ports 1-24 those ports have to be untagged (this is a procurve term, not sure about the cisco term) to reach the VLAN, when the VLANs are combined on a single link (i.e. to your single NIC on the pfsense box) you have to make a tagged uplink set (each of the VLANs going to a specified port has to be tagged).
When you distribute vlans from one switch to another the link between the switches have to be tagged for the switches to understand and send the packets right.
When it comes to the IP phones, are the computers connected behind the IP phones ? or do the computer have a seperate link to the switch ?
If the computers are located behind the phones the phone will have to be able to understand that the uplink is tagged and that there are multiple VLANs coming in on that link, I do not know if they do.
Hope this clears some things up, even though it's procurve speak instead of cisco speak.
PS. I think the name for a tagged uplink set is called a Trunk on cisco.