Type name conflict between FPGA libraries
The libraries are imported from
  work.amba.all
  and
  vendorname.amba.all


No they aren't. 

They are imported from work.amba and vendorname.amba.  The all in the use clauses simply pollutes your namespace with everything in both of those libraries. 

So, don't do that.

Instead, use fully qualified names

Use work.amba;  
Use vendorname.amba;  
... 
signal Mine   : work.amba.ahb_slv_out_vector;
signal Theirs : vendorname.amba.ahb_slv_out_vector;


and the two signals will coexist quite happily. Note they are completely different types, so you'll probably have to write type conversion functions between them if they should ever meet.

If most of your code involves the Work library with a few rare exceptions from the other, then you can happily use work.amba.all; to reduce the number of fully qualified names, only using them for the other library.