It is possible to map custom attributes from opportunity product to quote product to order product to invoice product within CRM. The best part about this workaround is that according to a recent Microsoft support case I opened, this is a supported workaround.
I will demonstrate this by going from quotedetail (quote product) to salesorderdetail (order product):
In SQL Server Management Studio. Run the following query:
Select * from entitymapbase where targetentityname = 'salesorderdetail'
This query should return three items, we care about the row with a SourceEntityName column value of "quotedetail".
Now copy the GUID value of the EntityMapId column for that row.
Then I use this URL, and at the end of it I paste the GUID that I just copied:
http://yourservernamehere/yourorgname/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=
This gives me the secret hidden mappings that I was after, between "Quote Product" and "Order Product". It is just another normal CRM GUI relationship mappings form.
This post is provided as-is and implies no warranty, Jamie Miley does not assume any responsibility for problems arising from the use of this information.