text messages forwarded from my google voice number aren't recognized as being from my iPhone contacts
Solution 1:
This is, unfortunately, a limitation of Google Voice. Google Voice cannot spoof your friends' numbers, so it has to send texts from its own numbers. However, each of your contacts will have a unique number from which Voice will send you texts, so you can send messages to those numbers and reply to them and it will reach your friends.
There are two ways around this. You can use the Google Voice app. Messages will come through your data plan and not your SMS plan, and they'll show up with the right names and everything. Alternatively, you can add the numbers Google uses as the "from" address as another number in your iPhone contacts. The number will still work to reach them, and the messages will appear to come from your Google Voice number.
Solution 2:
As google has shown in this link, this is a normal feature of Voice.
You have your Voice account set up to forward messages to your phone (from google). Unless you have a phone number at Google Voice, you will receive the messages from one of the random phone numbers that Google owns.
It is stated many times on the net that if you get the Google Voice app, it will show you the actual number of the sender; rather than the number assigned to forward the messages to your phone. This should eliminate the issue.