Upvoted Ed Altofer. (Ele respondeu primeiro, então se você gostou da minha resposta vote na dele também).
OleDb é o seu problema. É uma conexão de banco de dados genérica que precisa conversar com mais do que apenas o SQL Server e, como resultado, você tem uma situação de denominador comum mais baixo, na qual apenas o conjunto de recursos composto mais fraco pode ser totalmente suportado. Um dos recursos perdidos é o suporte a varchar(max).
Você está usando SQL Server 2005 e VB.Net. O que está impedindo você de usar System.Data.SqlClient em vez de System.Data.OleDb?
Editar
Encontrei a documentação sobre o assunto. Veja aqui:
http://msdn.microsoft.com/ pt-br/library/ms131035.aspx
A parte relevante: