no vas a poder comprimir con upx en vb, ya que tendras que escribir la rutina de descompresion en el ejecutable destino y eso en vb... no es lo mejor.
Pues eso. Mejor limítate a comprimir el fichero con upx (lo pones dentro de un recurso lo extraes, extraes el ejecutable que quieres comprimir y luego pasas el nombre de éste como parámetro al ejecutar el compresor upx). Es mucho más fácil, sólo debes hacer que la ventana de upx no se muestre.