Hi Danny!
Thanks for your help!
I actually found a similar article just after posting that message. I tried using the script to sort out all the serialized arrays but it didn’t deal with them properly and my widgets didn’t reappear. It replaced the domain name in the serialised arrays but it still didn’t update the string lengths.
I ended up going through manually and updating all the string lengths!! I might debug the script at some point to see what went wrong, but I’m far too busy at the moment!
I’m fairly new to WordPress and it seems crazy to me firstly that that this data is stored in the form of serialized arrays (why not just give each widget a row in the database?), and secondly that absolute paths are stored in the database at all!
Surely moving a site from domain a to domain b is something that happens all the time? Why do they make it so difficult?!!!