Turning a shulker into a vehicle by teleporting it?

Shulkers automatically snap themselves to the grid when moved, so your teleport works, and then the shulker rounds its position and returns itself to where it last was.

Consider making it ride another entity like an armor stand, which stops this behavior.

/summon armor_stand ~ ~ ~ {CustomName:ShulkerHolder,Marker:1b,Invisible:1b,NoGravity:1b,Passengers:[{id:shulker}]}

You then teleport the armor stand like so: /tp @e[type=armor_stand,name=ShulkerHolder] ~ ~.1 ~