text messages forwarded from my google voice number aren't recognized as being from my iPhone contacts
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.